{"version":3,"sources":["../../src/utilities/createIndexCode.js"],"names":["safeVariableName","fileName","indexOfDot","indexOf","slice","buildExportBlock","files","importBlock","map","join","filePaths","options","code","configCode","banner","banners","isArray","forEach","config","size","JSON","stringify","length","sortedFilePaths","sort"],"mappings":";;;;;;AAAA;;;;;;AAEA,MAAMA,mBAAoBC,QAAD,IAAc;AACrC,QAAMC,aAAaD,SAASE,OAAT,CAAiB,GAAjB,CAAnB;;AAEA,MAAID,eAAe,CAAC,CAApB,EAAuB;AACrB,WAAOD,QAAP;AACD,GAFD,MAEO;AACL,WAAOA,SAASG,KAAT,CAAe,CAAf,EAAkBF,UAAlB,CAAP;AACD;AACF,CARD;;AAUA,MAAMG,mBAAoBC,KAAD,IAAW;AAClC,MAAIC,WAAJ;;AAEAA,gBAAc,iBAAEC,GAAF,CAAMF,KAAN,EAAcL,QAAD,IAAc;AACvC,WAAO,yBAAyBD,iBAAiBC,QAAjB,CAAzB,GAAsD,cAAtD,GAAuEA,QAAvE,GAAkF,KAAzF;AACD,GAFa,CAAd;;AAIAM,gBAAcA,YAAYE,IAAZ,CAAiB,IAAjB,CAAd;;AAEA,SAAOF,WAAP;AACD,CAVD;;kBAYe,UAACG,SAAD,EAA6B;AAAA,MAAjBC,OAAiB,uEAAP,EAAO;;AAC1C,MAAIC,IAAJ;AACA,MAAIC,UAAJ;;AAEAD,SAAO,EAAP;AACAC,eAAa,EAAb;;AAEA,MAAIF,QAAQG,MAAZ,EAAoB;AAClB,UAAMC,UAAU,iBAAEC,OAAF,CAAUL,QAAQG,MAAlB,IAA4BH,QAAQG,MAApC,GAA6C,CAACH,QAAQG,MAAT,CAA7D;;AAEAC,YAAQE,OAAR,CAAiBH,MAAD,IAAY;AAC1BF,cAAQE,SAAS,IAAjB;AACD,KAFD;;AAIAF,YAAQ,IAAR;AACD;;AAED,MAAID,QAAQO,MAAR,IAAkB,iBAAEC,IAAF,CAAOR,QAAQO,MAAf,IAAyB,CAA/C,EAAkD;AAChDL,kBAAc,MAAMO,KAAKC,SAAL,CAAeV,QAAQO,MAAvB,CAApB;AACD;;AAEDN,UAAQ,qBAAqBC,UAArB,GAAkC,MAA1C;;AAEA,MAAIH,UAAUY,MAAd,EAAsB;AACpB,UAAMC,kBAAkBb,UAAUc,IAAV,EAAxB;;AAEAZ,YAAQP,iBAAiBkB,eAAjB,IAAoC,MAA5C;AACD;;AAED,SAAOX,IAAP;AACD,C","file":"createIndexCode.js","sourcesContent":["import _ from 'lodash';\n\nconst safeVariableName = (fileName) => {\n const indexOfDot = fileName.indexOf('.');\n\n if (indexOfDot === -1) {\n return fileName;\n } else {\n return fileName.slice(0, indexOfDot);\n }\n};\n\nconst buildExportBlock = (files) => {\n let importBlock;\n\n importBlock = _.map(files, (fileName) => {\n return 'export { default as ' + safeVariableName(fileName) + ' } from \\'./' + fileName + '\\';';\n });\n\n importBlock = importBlock.join('\\n');\n\n return importBlock;\n};\n\nexport default (filePaths, options = {}) => {\n let code;\n let configCode;\n\n code = '';\n configCode = '';\n\n if (options.banner) {\n const banners = _.isArray(options.banner) ? options.banner : [options.banner];\n\n banners.forEach((banner) => {\n code += banner + '\\n';\n });\n\n code += '\\n';\n }\n\n if (options.config && _.size(options.config) > 0) {\n configCode += ' ' + JSON.stringify(options.config);\n }\n\n code += '// @create-index' + configCode + '\\n\\n';\n\n if (filePaths.length) {\n const sortedFilePaths = filePaths.sort();\n\n code += buildExportBlock(sortedFilePaths) + '\\n\\n';\n }\n\n return code;\n};\n"]}