UNPKG

@nodesecure/js-x-ray

Version:
38 lines 1.32 kB
// Import Internal Dependencies import { getCallExpressionIdentifier, isCallExpression, isIdentifier, isMemberExpression } from "../../estree/index.js"; import { Inlined } from "../../Inlined.js"; export class InlinedRequire { static assertNode(node) { if (isCallExpression(node) && getCallExpressionIdentifier(node)?.match(/^require..*$/i)) { return true; } return false; } static split(expectedCallExpr) { if (!InlinedRequire.assertNode(expectedCallExpr)) { return null; } const requireCall = InlinedRequire.#findRequireCall(expectedCallExpr); if (!requireCall) { return null; } return Inlined.buildSplitResult(expectedCallExpr, requireCall, "require"); } static #findRequireCall(node) { const object = isMemberExpression(node) ? node.object : node.callee; if (isCallExpression(object) && isIdentifier(object.callee) && object.callee.name === "require") { return object; } if (isMemberExpression(object) || isCallExpression(object)) { return InlinedRequire.#findRequireCall(object); } return null; } } //# sourceMappingURL=InlinedRequire.js.map