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

Function visitExistingNodeTreeSymbols

test/fixtures/snapshot/typescript.js:54003–54121  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

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);

Callers

nothing calls this directly

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…