'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _castArray2 = require('lodash/castArray'); var _castArray3 = _interopRequireDefault(_castArray2); var _each2 = require('lodash/each'); var _each3 = _interopRequireDefault(_each2); exports.default = config; var _MapCache = require('./MapCache'); var _MapCache2 = _interopRequireDefault(_MapCache); var _ModuleCache = require('./ModuleCache'); var _ModuleCache2 = _interopRequireDefault(_ModuleCache); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var defaultIds = ['lodash', 'lodash-es', 'lodash-compat']; var oldCwd = void 0; var ids = []; var modules = new _MapCache2.default(); /*----------------------------------------------------------------------------*/ function config() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref$cwd = _ref.cwd, cwd = _ref$cwd === undefined ? process.cwd() : _ref$cwd, _ref$id = _ref.id, id = _ref$id === undefined ? defaultIds : _ref$id; if (oldCwd !== cwd) { oldCwd = cwd; modules.clear(); } (0, _each3.default)((0, _castArray3.default)(id), function (id) { if (!modules.get(id)) { var moduleRoot = _ModuleCache2.default.resolve(id, cwd); if (moduleRoot) { ids.push(id); modules.set(id, new _ModuleCache2.default(moduleRoot)); } } }); return { ids, modules }; }; module.exports = exports['default'];