UNPKG

@nodesecure/js-x-ray

Version:
25 lines 1.18 kB
// Import Internal Dependencies import { getMemberExpressionIdentifier } from "./getMemberExpressionIdentifier.js"; import { isCallExpression, isIdentifier, isMemberExpression, noop } from "../types.js"; export function getCallExpressionIdentifier(node, options = {}) { if (node.type !== "CallExpression" && node.type !== "NewExpression") { return null; } const { externalIdentifierLookup = noop, resolveCallExpression = true } = options; if (isIdentifier(node.callee)) { return node.callee.name; } if (isMemberExpression(node.callee)) { const memberObject = node.callee.object; let lastId = ""; for (const part of getMemberExpressionIdentifier(node.callee, { externalIdentifierLookup })) { lastId = lastId === "" ? part : `${lastId}.${part}`; } return resolveCallExpression && isCallExpression(memberObject) ? getCallExpressionIdentifier(memberObject) + `.${lastId}` : lastId; } return resolveCallExpression ? getCallExpressionIdentifier(node.callee, { externalIdentifierLookup }) : null; } //# sourceMappingURL=getCallExpressionIdentifier.js.map