@nodesecure/js-x-ray
Version:
JavaScript AST XRay analysis
29 lines • 927 B
JavaScript
// Import Internal Dependencies
import { Inlined } from "./Inlined.js";
import { isCallExpression, isMemberExpression } from "./estree/index.js";
export class InlinedNew {
static split(node) {
if (!isCallExpression(node) && !isMemberExpression(node)) {
return null;
}
const newExpression = InlinedNew.#findNewCall(node);
if (!newExpression) {
return null;
}
return Inlined.buildSplitResult(node, newExpression, "new");
}
static #findNewCall(node) {
if (isCallExpression(node)) {
const callee = node.callee;
return InlinedNew.#findNewCall(callee);
}
if (isMemberExpression(node)) {
return InlinedNew.#findNewCall(node.object);
}
if (node.type === "NewExpression") {
return node;
}
return null;
}
}
//# sourceMappingURL=InlinedNew.js.map