@nodesecure/js-x-ray
Version:
JavaScript AST XRay analysis
24 lines • 1.05 kB
JavaScript
// Import Internal Dependencies
import { getMemberExpressionIdentifier } from "./getMemberExpressionIdentifier.js";
import { noop } from "../types.js";
export function getCallExpressionIdentifier(node, options = {}) {
if (node.type !== "CallExpression") {
return null;
}
const { externalIdentifierLookup = noop, resolveCallExpression = true } = options;
if (node.callee.type === "Identifier") {
return node.callee.name;
}
if (node.callee.type === "MemberExpression") {
const memberObject = node.callee.object;
const lastId = [
...getMemberExpressionIdentifier(node.callee, { externalIdentifierLookup })
].join(".");
return resolveCallExpression && memberObject.type === "CallExpression" ?
getCallExpressionIdentifier(memberObject) + `.${lastId}` :
lastId;
}
return resolveCallExpression ?
getCallExpressionIdentifier(node.callee, { externalIdentifierLookup }) : null;
}
//# sourceMappingURL=getCallExpressionIdentifier.js.map