MCPcopy Index your code
hub / github.com/nodejs/node / isFixablePromiseHandler

Function isFixablePromiseHandler

test/fixtures/snapshot/typescript.js:144820–144839  ·  view source on GitHub ↗
(node, checker)

Source from the content-addressed store, hash-verified

144818 ts.isReturnStatementWithFixablePromiseHandler = isReturnStatementWithFixablePromiseHandler;
144819 // Should be kept up to date with transformExpression in convertToAsyncFunction.ts
144820 function isFixablePromiseHandler(node, checker) {
144821 // ensure outermost call exists and is a promise handler
144822 if (!isPromiseHandler(node) || !hasSupportedNumberOfArguments(node) || !node.arguments.every(function (arg) { return isFixablePromiseArgument(arg, checker); })) {
144823 return false;
144824 }
144825 // ensure all chained calls are valid
144826 var currentNode = node.expression.expression;
144827 while (isPromiseHandler(currentNode) || ts.isPropertyAccessExpression(currentNode)) {
144828 if (ts.isCallExpression(currentNode)) {
144829 if (!hasSupportedNumberOfArguments(currentNode) || !currentNode.arguments.every(function (arg) { return isFixablePromiseArgument(arg, checker); })) {
144830 return false;
144831 }
144832 currentNode = currentNode.expression.expression;
144833 }
144834 else {
144835 currentNode = currentNode.expression;
144836 }
144837 }
144838 return true;
144839 }
144840 ts.isFixablePromiseHandler = isFixablePromiseHandler;
144841 function isPromiseHandler(node) {
144842 return ts.isCallExpression(node) && (ts.hasPropertyAccessExpressionWithName(node, "then") ||

Calls 4

isPromiseHandlerFunction · 0.85
isFixablePromiseArgumentFunction · 0.85
everyMethod · 0.80

Tested by

no test coverage detected