UNPKG

module-indexer

Version:
67 lines (42 loc) 2.11 kB
'use strict'; exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _getModules = require('get-modules'); var _getModules2 = _interopRequireDefault(_getModules); var _fs = require('fs'); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _chickencurry = require('chickencurry'); var _chickencurry2 = _interopRequireDefault(_chickencurry); var _linersMap = require('1-liners/map'); var _linersMap2 = _interopRequireDefault(_linersMap); var _linersJoin = require('1-liners/join'); var _linersJoin2 = _interopRequireDefault(_linersJoin); var _linersCompose = require('1-liners/compose'); var _linersCompose2 = _interopRequireDefault(_linersCompose); var _linersReduce = require('1-liners/reduce'); var _linersReduce2 = _interopRequireDefault(_linersReduce); var _linersFilter = require('1-liners/filter'); var _linersFilter2 = _interopRequireDefault(_linersFilter); var mapλ = (0, _chickencurry2['default'])(_linersMap2['default']); var joinλ = (0, _chickencurry2['default'])(_linersJoin2['default']); var filterλ = (0, _chickencurry2['default'])(_linersFilter2['default']); var removeExt = mapλ(function (module) { return module.replace('.js', ''); }); var filterIndex = filterλ(function (module) { return module !== 'index.js'; }); var createImports = (0, _linersReduce2['default'])(_linersCompose2['default'], [joinλ('\n'), mapλ(function (module) { return 'import ' + module + ' from \'./' + module + '\';'; }), removeExt, filterIndex]); var createExport = (0, _linersReduce2['default'])(_linersCompose2['default'], [joinλ(',\n '), removeExt, filterIndex]); exports['default'] = function (root, callback) { return (0, _getModules2['default'])(root, function (err, modules) { if (err) throw err; var imports = createImports(modules); var exportDefault = 'export {\n ' + createExport(modules) + '\n};'; (0, _fs.writeFile)(_path2['default'].join(root, 'module', 'index.js'), '' + imports + '\n\n' + exportDefault, callback); }); }; module.exports = exports['default'];