babel-plugin-lodash
Version:
Modular Lodash builds without the hassle.
44 lines (32 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _mapping = require('./mapping');
var _mapping2 = _interopRequireDefault(_mapping);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*----------------------------------------------------------------------------*/
function resolvePath(pkgStore, name) {
var base = pkgStore.base;
var id = pkgStore.id;
var lower = name.toLowerCase();
var module = _mapping2.default.modules.get(id);
if (!module.get(base).has(lower)) {
base = base ? '' : module.findKey(function (map) {
return map.has(lower);
});
if (!base) {
throw new Error(['The \'' + id + '\' method ' + name + ' is not a known module.', 'Please report bugs to https://github.com/lodash/babel-plugin-lodash/issues.'].join('\n'));
}
}
return id + '/' + (base ? base + '/' : '') + module.get(base).get(lower);
}
function importModule(pkgStore, name, file) {
return file.addImport(resolvePath(pkgStore, name), 'default', name);
}
exports.default = _lodash2.default.memoize(importModule, function (pkgStore, name) {
return (pkgStore.path + '/' + name).toLowerCase();
});
module.exports = exports['default'];