@nodesecure/js-x-ray
Version:
JavaScript AST XRay analysis
58 lines • 2.05 kB
JavaScript
// Import Internal Dependencies
import { VirtualVariableIdentifier } from "./VirtualVariableIdentifier.js";
import { isCallExpression, isMemberExpression } from "./estree/index.js";
export class Inlined {
static buildSplitResult(node, target, identifier) {
const virtualIdentifier = VirtualVariableIdentifier.generate(identifier, node.loc);
return {
virtualIdentifier,
virtualDeclaration: {
type: "VariableDeclaration",
kind: "const",
declarations: [
{
type: "VariableDeclarator",
id: {
type: "Identifier",
name: virtualIdentifier
},
init: target
}
]
},
rebuildExpression: Inlined.
};
}
static
if (node === target) {
return null;
}
const virtualId = {
type: "Identifier",
name: virtualIdentifier
};
return Inlined.
}
static
if (node === target) {
return replacement;
}
if (isCallExpression(node)) {
const callee = Inlined.
const args = node.arguments.map((arg) => Inlined.
return {
...node,
callee,
arguments: args
};
}
if (isMemberExpression(node)) {
return {
...node,
object: Inlined.
};
}
return node;
}
}
//# sourceMappingURL=Inlined.js.map