MCPcopy Create free account
hub / github.com/nodejs/node / getArgBindingName

Function getArgBindingName

test/fixtures/snapshot/typescript.js:151993–152039  ·  view source on GitHub ↗
(funcNode, transformer)

Source from the content-addressed store, hash-verified

151991 return innerCbBody;
151992 }
151993 function getArgBindingName(funcNode, transformer) {
151994 var types = [];
151995 var name;
151996 if (ts.isFunctionLikeDeclaration(funcNode)) {
151997 if (funcNode.parameters.length > 0) {
151998 var param = funcNode.parameters[0].name;
151999 name = getMappedBindingNameOrDefault(param);
152000 }
152001 }
152002 else if (ts.isIdentifier(funcNode)) {
152003 name = getMapEntryOrDefault(funcNode);
152004 }
152005 else if (ts.isPropertyAccessExpression(funcNode) && ts.isIdentifier(funcNode.name)) {
152006 name = getMapEntryOrDefault(funcNode.name);
152007 }
152008 // return undefined argName when arg is null or undefined
152009 // eslint-disable-next-line no-in-operator
152010 if (!name || "identifier" in name && name.identifier.text === "undefined") {
152011 return undefined;
152012 }
152013 return name;
152014 function getMappedBindingNameOrDefault(bindingName) {
152015 if (ts.isIdentifier(bindingName))
152016 return getMapEntryOrDefault(bindingName);
152017 var elements = ts.flatMap(bindingName.elements, function (element) {
152018 if (ts.isOmittedExpression(element))
152019 return [];
152020 return [getMappedBindingNameOrDefault(element.name)];
152021 });
152022 return createSynthBindingPattern(bindingName, elements);
152023 }
152024 function getMapEntryOrDefault(identifier) {
152025 var originalNode = getOriginalNode(identifier);
152026 var symbol = getSymbol(originalNode);
152027 if (!symbol) {
152028 return createSynthIdentifier(identifier, types);
152029 }
152030 var mapEntry = transformer.synthNamesMap.get(ts.getSymbolId(symbol).toString());
152031 return mapEntry || createSynthIdentifier(identifier, types);
152032 }
152033 function getSymbol(node) {
152034 return node.symbol ? node.symbol : transformer.checker.getSymbolAtLocation(node);
152035 }
152036 function getOriginalNode(node) {
152037 return node.original ? node.original : node;
152038 }
152039 }
152040 function isEmptyBindingName(bindingName) {
152041 if (!bindingName) {
152042 return true;

Callers 2

transformCatchFunction · 0.85
transformThenFunction · 0.85

Calls 2

getMapEntryOrDefaultFunction · 0.85

Tested by

no test coverage detected