UNPKG

esm-require-directory

Version:

require a directory of modules using es6 modules require

67 lines 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return walk; } }); var _fsiterator = /*#__PURE__*/ _interop_require_default(require("fs-iterator")); var _path = /*#__PURE__*/ _interop_require_default(require("path")); var _addResultts = /*#__PURE__*/ _interop_require_default(require("./addResult.js")); var _requireIndexts = /*#__PURE__*/ _interop_require_default(require("./requireIndex.js")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function walk(directory, options, callback) { var results = options.paths || options.filename ? {} : []; var iterator = new _fsiterator.default(directory, { depth: options.recursive ? Infinity : 0, alwaysStat: true, filter: function(entry, callback) { if (entry.path === '') { callback(); return; } // check for index file one level under the directory if (entry.stats.isDirectory()) { if (options.recursive) { callback(); // will pick up index in traverse return; } var cb = function(error, module, indexBasename) { if (error) return callback(error); if (module) (0, _addResultts.default)(results, { basename: indexBasename, path: _path.default.join(entry.path, indexBasename) }, options, module); callback(); }; (0, _requireIndexts.default)(entry.fullPath, options, cb); } else { if (!~options.extensions.indexOf(_path.default.extname(entry.basename))) { callback(); // not a supported index return; } options.loader(entry.fullPath, function(err, module) { if (err) return callback(err); if (module) (0, _addResultts.default)(results, entry, options, module); callback(); }); } }, callbacks: true }); iterator.forEach(function(_entry) {}, { concurrency: 1 }, function(err) { iterator.destroy(); iterator = null; err ? callback(err) : callback(null, results); }); } /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }