UNPKG

coz-bud-loader

Version:
174 lines (139 loc) 9.21 kB
/** * Require a module. * @memberof module:coz-bud-loader/lib * @function requireBud * @param {Bud} bud - Bud to require. * @returns {Promise} */ 'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var fs = require('fs'); var path = require('path'); /** @lends requireBud */ function requireBud(_x) { return _requireBud.apply(this, arguments); } function _requireBud() { _requireBud = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee(buds) { var results, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret; return _regenerator.default.wrap(function _callee$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: buds = [].concat(buds || []); results = []; _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context2.prev = 5; _loop = /*#__PURE__*/ _regenerator.default.mark(function _loop() { var bud, src, filename, exists, name; return _regenerator.default.wrap(function _loop$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: bud = _step.value; src = bud.src || bud; if (!((0, _typeof2.default)(src) === 'object')) { _context.next = 5; break; } // Seems already required. results.push(bud); return _context.abrupt("return", "continue"); case 5: filename = path.resolve(src); _context.next = 8; return new Promise(function (resolve) { return fs.exists(filename, function (exists) { return resolve(exists); }); }); case 8: exists = _context.sent; name = exists ? filename : src; _context.prev = 10; bud = require(name); _context.next = 17; break; case 14: _context.prev = 14; _context.t0 = _context["catch"](10); throw new Error("Failed to load ".concat(name, ": ").concat(_context.t0)); case 17: results.push([].concat(bud).map(function (bud) { bud.src = path.resolve(src); return bud; })); case 18: case "end": return _context.stop(); } } }, _loop, null, [[10, 14]]); }); _iterator = buds[Symbol.iterator](); case 8: if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { _context2.next = 16; break; } return _context2.delegateYield(_loop(), "t0", 10); case 10: _ret = _context2.t0; if (!(_ret === "continue")) { _context2.next = 13; break; } return _context2.abrupt("continue", 13); case 13: _iteratorNormalCompletion = true; _context2.next = 8; break; case 16: _context2.next = 22; break; case 18: _context2.prev = 18; _context2.t1 = _context2["catch"](5); _didIteratorError = true; _iteratorError = _context2.t1; case 22: _context2.prev = 22; _context2.prev = 23; if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } case 25: _context2.prev = 25; if (!_didIteratorError) { _context2.next = 28; break; } throw _iteratorError; case 28: return _context2.finish(25); case 29: return _context2.finish(22); case 30: return _context2.abrupt("return", results.reduce(function (a, b) { return [].concat(a, b); }, [])); case 31: case "end": return _context2.stop(); } } }, _callee, null, [[5, 18, 22, 30], [23,, 25, 29]]); })); return _requireBud.apply(this, arguments); } module.exports = requireBud; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcXVpcmVfYnVkLmpzIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsInBhdGgiLCJyZXF1aXJlQnVkIiwiYnVkcyIsImNvbmNhdCIsInJlc3VsdHMiLCJidWQiLCJzcmMiLCJwdXNoIiwiZmlsZW5hbWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsImV4aXN0cyIsIm5hbWUiLCJFcnJvciIsIm1hcCIsInJlZHVjZSIsImEiLCJiIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7QUFRQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEVBQUUsR0FBR0MsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsSUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjtBQUVBOzs7U0FDZUUsVTs7Ozs7Ozs0QkFBZixpQkFBMEJDLElBQTFCO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDRUEsWUFBQUEsSUFBSSxHQUFHLEdBQUdDLE1BQUgsQ0FBVUQsSUFBSSxJQUFJLEVBQWxCLENBQVA7QUFFSUUsWUFBQUEsT0FITixHQUdnQixFQUhoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlXQyxzQkFBQUEsR0FKWDtBQUtRQyxzQkFBQUEsR0FMUixHQUtjRCxHQUFHLENBQUNDLEdBQUosSUFBV0QsR0FMekI7O0FBQUEsNEJBTVEsc0JBQU9DLEdBQVAsTUFBZSxRQU52QjtBQUFBO0FBQUE7QUFBQTs7QUFPTTtBQUNBRixzQkFBQUEsT0FBTyxDQUFDRyxJQUFSLENBQWFGLEdBQWI7QUFSTjs7QUFBQTtBQVdRRyxzQkFBQUEsUUFYUixHQVdtQlIsSUFBSSxDQUFDUyxPQUFMLENBQWFILEdBQWIsQ0FYbkI7QUFBQTtBQUFBLDZCQVl1QixJQUFJSSxPQUFKLENBQVksVUFBQ0QsT0FBRDtBQUFBLCtCQUM3QlgsRUFBRSxDQUFDYSxNQUFILENBQVVILFFBQVYsRUFBb0IsVUFBQ0csTUFBRDtBQUFBLGlDQUFZRixPQUFPLENBQUNFLE1BQUQsQ0FBbkI7QUFBQSx5QkFBcEIsQ0FENkI7QUFBQSx1QkFBWixDQVp2Qjs7QUFBQTtBQVlRQSxzQkFBQUEsTUFaUjtBQWVRQyxzQkFBQUEsSUFmUixHQWVlRCxNQUFNLEdBQUdILFFBQUgsR0FBY0YsR0FmbkM7QUFBQTtBQWlCTUQsc0JBQUFBLEdBQUcsR0FBR04sT0FBTyxDQUFDYSxJQUFELENBQWI7QUFqQk47QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQSw0QkFtQlksSUFBSUMsS0FBSiwwQkFBNEJELElBQTVCLDRCQW5CWjs7QUFBQTtBQXFCSVIsc0JBQUFBLE9BQU8sQ0FBQ0csSUFBUixDQUNFLEdBQUdKLE1BQUgsQ0FBVUUsR0FBVixFQUFlUyxHQUFmLENBQW1CLFVBQUNULEdBQUQsRUFBUztBQUMxQkEsd0JBQUFBLEdBQUcsQ0FBQ0MsR0FBSixHQUFVTixJQUFJLENBQUNTLE9BQUwsQ0FBYUgsR0FBYixDQUFWO0FBQ0EsK0JBQU9ELEdBQVA7QUFDRCx1QkFIRCxDQURGOztBQXJCSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHdCQUlrQkgsSUFKbEI7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQSw4Q0E0QlNFLE9BQU8sQ0FBQ1csTUFBUixDQUFlLFVBQUNDLENBQUQsRUFBSUMsQ0FBSjtBQUFBLHFCQUFVLEdBQUdkLE1BQUgsQ0FBVWEsQ0FBVixFQUFhQyxDQUFiLENBQVY7QUFBQSxhQUFmLEVBQTBDLEVBQTFDLENBNUJUOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEc7Ozs7QUErQkFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmxCLFVBQWpCIiwic291cmNlUm9vdCI6Ii4uLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVxdWlyZSBhIG1vZHVsZS5cbiAqIEBtZW1iZXJvZiBtb2R1bGU6Y296LWJ1ZC1sb2FkZXIvbGliXG4gKiBAZnVuY3Rpb24gcmVxdWlyZUJ1ZFxuICogQHBhcmFtIHtCdWR9IGJ1ZCAtIEJ1ZCB0byByZXF1aXJlLlxuICogQHJldHVybnMge1Byb21pc2V9XG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKVxuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxuXG4vKiogQGxlbmRzIHJlcXVpcmVCdWQgKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcXVpcmVCdWQoYnVkcykge1xuICBidWRzID0gW10uY29uY2F0KGJ1ZHMgfHwgW10pXG5cbiAgbGV0IHJlc3VsdHMgPSBbXVxuICBmb3IgKGxldCBidWQgb2YgYnVkcykge1xuICAgIGxldCBzcmMgPSBidWQuc3JjIHx8IGJ1ZFxuICAgIGlmICh0eXBlb2Ygc3JjID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gU2VlbXMgYWxyZWFkeSByZXF1aXJlZC5cbiAgICAgIHJlc3VsdHMucHVzaChidWQpXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBsZXQgZmlsZW5hbWUgPSBwYXRoLnJlc29sdmUoc3JjKVxuICAgIGxldCBleGlzdHMgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICAgIGZzLmV4aXN0cyhmaWxlbmFtZSwgKGV4aXN0cykgPT4gcmVzb2x2ZShleGlzdHMpKVxuICAgIClcbiAgICBsZXQgbmFtZSA9IGV4aXN0cyA/IGZpbGVuYW1lIDogc3JjXG4gICAgdHJ5IHtcbiAgICAgIGJ1ZCA9IHJlcXVpcmUobmFtZSlcbiAgICB9IGNhdGNoIChjYXRjaGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkICR7bmFtZX06ICR7Y2F0Y2hlZH1gKVxuICAgIH1cbiAgICByZXN1bHRzLnB1c2goXG4gICAgICBbXS5jb25jYXQoYnVkKS5tYXAoKGJ1ZCkgPT4ge1xuICAgICAgICBidWQuc3JjID0gcGF0aC5yZXNvbHZlKHNyYylcbiAgICAgICAgcmV0dXJuIGJ1ZFxuICAgICAgfSlcbiAgICApXG4gIH1cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKChhLCBiKSA9PiBbXS5jb25jYXQoYSwgYiksIFtdKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmVCdWRcbiJdfQ==