st-bundle
Version:
CLI for watching and bundling SpringType projects.
49 lines (48 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const transformUtils_1 = require("../transformUtils");
function onImportDeclaration(ctx, node, parent, prop, idx) {
const source = node.source.value;
const localName = ctx.generateName();
const localVariables = [];
const opts = {
replaceNode: { array: parent[prop], node },
source: source,
localVariables,
};
if (node.specifiers.length > 0) {
opts.local = localName;
}
ctx.reqStatements.push(opts);
node.specifiers.forEach(specifier => {
if (specifier.type === 'ImportSpecifier') {
ctx.tracedImportSpecifiers[specifier.local.name] = {
alias: specifier.imported.name,
local: localName,
nodes: [],
};
localVariables.push({
exported: specifier.local.name,
local: transformUtils_1.createMemberExpression(localName, specifier.imported.name),
});
}
else if (specifier.type === 'ImportDefaultSpecifier') {
ctx.tracedImportSpecifiers[specifier.local.name] = { alias: 'default', local: localName, nodes: [] };
localVariables.push({
exported: specifier.local.name,
local: transformUtils_1.createMemberExpression(localName, 'default'),
});
}
else if (specifier.type === 'ImportNamespaceSpecifier') {
ctx.tracedImportSpecifiers[specifier.local.name] = { replaceWithLocal: true, local: localName, nodes: [] };
localVariables.push({
exported: specifier.local.name,
local: {
type: 'Identifier',
name: localName,
},
});
}
});
}
exports.onImportDeclaration = onImportDeclaration;