UNPKG

babel-plugin-lodash-modularize

Version:

Babel plugin that replaces lodash library import statement to individual module imports.

78 lines (50 loc) 2.22 kB
'use strict'; var _includes2 = require('lodash/includes'); var _includes3 = _interopRequireDefault(_includes2); var _map2 = require('lodash/map'); var _map3 = _interopRequireDefault(_map2); var _forEach2 = require('lodash/forEach'); var _forEach3 = _interopRequireDefault(_forEach2); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _path2 = _interopRequireDefault(_path); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var categoryDirectoryNames = undefined, lodashModuleDirectory = undefined, mapDeclaration = undefined, mappedFunctions = undefined; /** * Used to generate map of the function categories. */ mappedFunctions = []; mapDeclaration = []; lodashModuleDirectory = _path2.default.dirname(require.resolve('lodash')); categoryDirectoryNames = _fs2.default.readdirSync(lodashModuleDirectory); (0, _forEach3.default)(categoryDirectoryNames, function (categoryDirectoryName) { var categoryDirectoryPath = undefined, modulesInCategory = undefined, stat = undefined; categoryDirectoryPath = _path2.default.join(lodashModuleDirectory, categoryDirectoryName); stat = _fs2.default.statSync(categoryDirectoryPath); if (!stat.isDirectory()) { return; } modulesInCategory = _fs2.default.readdirSync(categoryDirectoryPath); modulesInCategory = (0, _map3.default)(modulesInCategory, function (fileName) { return fileName.slice(0, -3); }); // modulesInCategory (0, _forEach3.default)(modulesInCategory, function (moduleName) { // Some (collection/math max, min) functions are declared as aliases. if ((0, _includes3.default)(mappedFunctions, moduleName)) { return; } mappedFunctions.push(moduleName); mapDeclaration.push(moduleName + ': \'' + categoryDirectoryName + '\''); }); }); mapDeclaration = 'export default {\n' + mapDeclaration.sort().map(function (moduleName) { return ' ' + moduleName; }).join(',\n') + '\n};'; console.log(mapDeclaration); //# sourceMappingURL=index.js.map