(funcNode, transformer)
| 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; |
no test coverage detected