st-bundle
Version:
CLI for watching and bundling SpringType projects.
38 lines (37 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const transformUtils_1 = require("../transformUtils");
function handleExportSpecifiers(ctx, node, parent, prop, idx) {
if (node.source) {
const name = ctx.generateName();
if (node.source.type === 'Literal') {
ctx.reqStatements.push({ local: name, source: node.source.value });
}
node.specifiers.forEach(specifier => {
ctx.exported.push({
exported: specifier.exported.name,
local: transformUtils_1.createMemberExpression(name, specifier.local.name),
});
});
}
else {
// export { name1, name2}
node.specifiers.forEach(specifier => {
let replacement = specifier.local.name;
if (ctx.tracedImportSpecifiers[specifier.local.name]) {
const traced = ctx.tracedImportSpecifiers[specifier.local.name];
if (traced.replaceWithLocal) {
replacement = { type: 'Identifier', name: traced.local };
}
else {
replacement = transformUtils_1.createMemberExpression(traced.local, traced.alias ? traced.alias : specifier.local.name);
}
}
ctx.exported.push({ local: replacement, exported: specifier.exported.name });
});
}
if (prop && idx !== undefined) {
ctx.toRemove(parent[prop], node);
}
}
exports.handleExportSpecifiers = handleExportSpecifiers;