(node)
| 54001 | } |
| 54002 | return transformed === existing ? ts.setTextRange(ts.factory.cloneNode(existing), existing) : transformed; |
| 54003 | function visitExistingNodeTreeSymbols(node) { |
| 54004 | // We don't _actually_ support jsdoc namepath types, emit `any` instead |
| 54005 | if (ts.isJSDocAllType(node) || node.kind === 319 /* SyntaxKind.JSDocNamepathType */) { |
| 54006 | return ts.factory.createKeywordTypeNode(130 /* SyntaxKind.AnyKeyword */); |
| 54007 | } |
| 54008 | if (ts.isJSDocUnknownType(node)) { |
| 54009 | return ts.factory.createKeywordTypeNode(155 /* SyntaxKind.UnknownKeyword */); |
| 54010 | } |
| 54011 | if (ts.isJSDocNullableType(node)) { |
| 54012 | return ts.factory.createUnionTypeNode([ts.visitNode(node.type, visitExistingNodeTreeSymbols), ts.factory.createLiteralTypeNode(ts.factory.createNull())]); |
| 54013 | } |
| 54014 | if (ts.isJSDocOptionalType(node)) { |
| 54015 | return ts.factory.createUnionTypeNode([ts.visitNode(node.type, visitExistingNodeTreeSymbols), ts.factory.createKeywordTypeNode(153 /* SyntaxKind.UndefinedKeyword */)]); |
| 54016 | } |
| 54017 | if (ts.isJSDocNonNullableType(node)) { |
| 54018 | return ts.visitNode(node.type, visitExistingNodeTreeSymbols); |
| 54019 | } |
| 54020 | if (ts.isJSDocVariadicType(node)) { |
| 54021 | return ts.factory.createArrayTypeNode(ts.visitNode(node.type, visitExistingNodeTreeSymbols)); |
| 54022 | } |
| 54023 | if (ts.isJSDocTypeLiteral(node)) { |
| 54024 | return ts.factory.createTypeLiteralNode(ts.map(node.jsDocPropertyTags, function (t) { |
| 54025 | var name = ts.isIdentifier(t.name) ? t.name : t.name.right; |
| 54026 | var typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode(node), name.escapedText); |
| 54027 | var overrideTypeNode = typeViaParent && t.typeExpression && getTypeFromTypeNode(t.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : undefined; |
| 54028 | return ts.factory.createPropertySignature( |
| 54029 | /*modifiers*/ undefined, name, t.isBracketed || t.typeExpression && ts.isJSDocOptionalType(t.typeExpression.type) ? ts.factory.createToken(57 /* SyntaxKind.QuestionToken */) : undefined, overrideTypeNode || (t.typeExpression && ts.visitNode(t.typeExpression.type, visitExistingNodeTreeSymbols)) || ts.factory.createKeywordTypeNode(130 /* SyntaxKind.AnyKeyword */)); |
| 54030 | })); |
| 54031 | } |
| 54032 | if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName) && node.typeName.escapedText === "") { |
| 54033 | return ts.setOriginalNode(ts.factory.createKeywordTypeNode(130 /* SyntaxKind.AnyKeyword */), node); |
| 54034 | } |
| 54035 | if ((ts.isExpressionWithTypeArguments(node) || ts.isTypeReferenceNode(node)) && ts.isJSDocIndexSignature(node)) { |
| 54036 | return ts.factory.createTypeLiteralNode([ts.factory.createIndexSignature( |
| 54037 | /*decorators*/ undefined, |
| 54038 | /*modifiers*/ undefined, [ts.factory.createParameterDeclaration( |
| 54039 | /*decorators*/ undefined, |
| 54040 | /*modifiers*/ undefined, |
| 54041 | /*dotdotdotToken*/ undefined, "x", |
| 54042 | /*questionToken*/ undefined, ts.visitNode(node.typeArguments[0], visitExistingNodeTreeSymbols))], ts.visitNode(node.typeArguments[1], visitExistingNodeTreeSymbols))]); |
| 54043 | } |
| 54044 | if (ts.isJSDocFunctionType(node)) { |
| 54045 | if (ts.isJSDocConstructSignature(node)) { |
| 54046 | var newTypeNode_1; |
| 54047 | return ts.factory.createConstructorTypeNode(node.modifiers, ts.visitNodes(node.typeParameters, visitExistingNodeTreeSymbols), ts.mapDefined(node.parameters, function (p, i) { return p.name && ts.isIdentifier(p.name) && p.name.escapedText === "new" ? (newTypeNode_1 = p.type, undefined) : ts.factory.createParameterDeclaration( |
| 54048 | /*decorators*/ undefined, |
| 54049 | /*modifiers*/ undefined, getEffectiveDotDotDotForParameter(p), getNameForJSDocFunctionParameter(p, i), p.questionToken, ts.visitNode(p.type, visitExistingNodeTreeSymbols), |
| 54050 | /*initializer*/ undefined); }), ts.visitNode(newTypeNode_1 || node.type, visitExistingNodeTreeSymbols) || ts.factory.createKeywordTypeNode(130 /* SyntaxKind.AnyKeyword */)); |
| 54051 | } |
| 54052 | else { |
| 54053 | return ts.factory.createFunctionTypeNode(ts.visitNodes(node.typeParameters, visitExistingNodeTreeSymbols), ts.map(node.parameters, function (p, i) { return ts.factory.createParameterDeclaration( |
| 54054 | /*decorators*/ undefined, |
| 54055 | /*modifiers*/ undefined, getEffectiveDotDotDotForParameter(p), getNameForJSDocFunctionParameter(p, i), p.questionToken, ts.visitNode(p.type, visitExistingNodeTreeSymbols), |
| 54056 | /*initializer*/ undefined); }), ts.visitNode(node.type, visitExistingNodeTreeSymbols) || ts.factory.createKeywordTypeNode(130 /* SyntaxKind.AnyKeyword */)); |
| 54057 | } |
| 54058 | } |
| 54059 | if (ts.isTypeReferenceNode(node) && ts.isInJSDoc(node) && (!existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(node, getTypeFromTypeNode(node)) || getIntendedTypeFromJSDocTypeReference(node) || unknownSymbol === resolveTypeReferenceName(node, 788968 /* SymbolFlags.Type */, /*ignoreErrors*/ true))) { |
| 54060 | return ts.setOriginalNode(typeToTypeNodeHelper(getTypeFromTypeNode(node), context), node); |
nothing calls this directly
no test coverage detected
searching dependent graphs…