st-bundle
Version:
CLI for watching and bundling SpringType projects.
41 lines (40 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const transformUtils_1 = require("../transformUtils");
function tracedVariable(ctx, node, context) {
if (ctx.tracedImportSpecifiers[node.name] && ctx.tracedImportSpecifiers[node.name].nodes) {
// variable found in the local scope
if (context && context.locals.indexOf(node.name) > -1) {
// we return the node as is, without modifying it
return node;
}
const traced = ctx.tracedImportSpecifiers[node.name];
// alias usually means a "default" statement. Here we need to create a new Identifier for it
// otherwise we take the node as is
return transformUtils_1.createTracedExpression(traced.local, traced.alias ? { type: 'Identifier', name: traced.alias } : node);
}
return node;
}
exports.tracedVariable = tracedVariable;
function handleTracedImportSpecifiers(ctx) {
for (const local in ctx.tracedImportSpecifiers) {
const item = ctx.tracedImportSpecifiers[local];
for (const node of item.nodes) {
if (item.alias) {
node.node.name = item.alias;
}
if (item.replaceWithLocal) {
node.node.name = item.local;
}
else {
if (node.idx === undefined) {
node.parent[node.prop] = transformUtils_1.createTracedExpression(item.local, node.node);
}
else {
node.parent[node.prop][node.idx] = transformUtils_1.createTracedExpression(item.local, node.node);
}
}
}
}
}
exports.handleTracedImportSpecifiers = handleTracedImportSpecifiers;