@playlyfe/babel-loader
Version:
babel module loader for webpack
58 lines (45 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getImportsFromMetadata = getImportsFromMetadata;
exports.default = void 0;
var _helperPluginUtils = require("@babel/helper-plugin-utils");
var _default = (0, _helperPluginUtils.declare)(api => {
api.assertVersion(7);
return {
visitor: {
ImportDeclaration(path, state) {
const sourceNode = path.get('source').node;
addImportToMetadata(state, sourceNode.value);
},
CallExpression(path, state) {
const callee = path.get('callee');
if (callee.isIdentifier() && callee.node.name === 'require') {
const arg = path.get('arguments.0');
if (arg.isStringLiteral()) {
addImportToMetadata(state, arg.node.value);
}
}
}
}
};
});
exports.default = _default;
function addImportToMetadata(state, importStr) {
const {
metadata
} = state.file;
if (!metadata.findImports) {
metadata.findImports = {
imports: []
};
}
metadata.findImports.imports.push(importStr);
}
function getImportsFromMetadata(metadata) {
if (!metadata.findImports) {
return [];
}
return metadata.findImports.imports;
}