indexr
Version:
Automated dynamic indexes for your ES6+ source code.
84 lines (56 loc) • 2.57 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = indexr;
var _exts = require('./modules/exts');
var _exts2 = _interopRequireDefault(_exts);
var _file = require('./modules/file');
var _file2 = _interopRequireDefault(_file);
var _imports = require('./modules/imports');
var _imports2 = _interopRequireDefault(_imports);
var _moduleFolders = require('./modules/moduleFolders');
var _moduleFolders2 = _interopRequireDefault(_moduleFolders);
var _args = require('./modules/args');
var _args2 = _interopRequireDefault(_args);
var _remember = require('./utils/remember');
var _remember2 = _interopRequireDefault(_remember);
var _logger = require('./utils/logger');
var _rootFolder = require('./modules/rootFolder');
var _rootFolder2 = _interopRequireDefault(_rootFolder);
var _submodules = require('./modules/submodules');
var _submodules2 = _interopRequireDefault(_submodules);
var _template = require('./modules/template');
var _template2 = _interopRequireDefault(_template);
var _watch = require('./modules/watch');
var _watch2 = _interopRequireDefault(_watch);
var _chainMap = require('./utils/chainMap');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function indexr() {
// Get parsed input
var parsed = _args2.default.apply(undefined, arguments);
var mem = (0, _remember2.default)('modulePath');
// Configure all our modules
var findModuleFolders = _moduleFolders2.default.findModuleFolders(parsed);
var findSubmodules = _submodules2.default.findSubmodules(parsed);
var removeExtensions = _exts2.default.removeExtensions(parsed);
var resolveDirectImports = _imports2.default.resolveDirectImports(parsed);
var rootFolderFilePath = _rootFolder2.default.rootFolderFilePath(parsed);
var storeOutput = mem.store;
var toFile = mem.decorate(_file2.default.toFile(parsed));
var toTemplate = _template2.default.toTemplate(parsed);
var watchFiles = _watch2.default.watchFiles(parsed);
return new Promise(function (resolve, reject) {
// Create the sequence of operations
var watchSequence = watchFiles(findModuleFolders, (0, _chainMap.map)(rootFolderFilePath, storeOutput, findSubmodules, (0, _chainMap.map)(removeExtensions, resolveDirectImports), toTemplate, toFile));
// Run the sequence of operations
watchSequence(function (err, result) {
if (err) {
(0, _logger.error)(err);
return reject(err);
}
return resolve(result);
});
});
}
module.exports = exports['default'];