| import { n as parseSync, t as parse } from "./shared/parse-D4dtlfWy.mjs"; |
| import { a as minify, i as transformSync, o as minifySync, r as transform, t as TsconfigCache } from "./shared/resolve-tsconfig-DxqIJB3x.mjs"; |
| |
| function walkNode(node, visitors) { |
| if (node == null) return; |
| if (Array.isArray(node)) { |
| let len = node.length; |
| for (let i = 0; i < len; i++) walkNode(node[i], visitors); |
| } else switch (node.type) { |
| case "DebuggerStatement": |
| walkDebuggerStatement(node, visitors); |
| break; |
| case "EmptyStatement": |
| walkEmptyStatement(node, visitors); |
| break; |
| case "Literal": |
| walkLiteral(node, visitors); |
| break; |
| case "PrivateIdentifier": |
| walkPrivateIdentifier(node, visitors); |
| break; |
| case "Super": |
| walkSuper(node, visitors); |
| break; |
| case "TemplateElement": |
| walkTemplateElement(node, visitors); |
| break; |
| case "ThisExpression": |
| walkThisExpression(node, visitors); |
| break; |
| case "JSXClosingFragment": |
| walkJSXClosingFragment(node, visitors); |
| break; |
| case "JSXEmptyExpression": |
| walkJSXEmptyExpression(node, visitors); |
| break; |
| case "JSXIdentifier": |
| walkJSXIdentifier(node, visitors); |
| break; |
| case "JSXOpeningFragment": |
| walkJSXOpeningFragment(node, visitors); |
| break; |
| case "JSXText": |
| walkJSXText(node, visitors); |
| break; |
| case "TSAnyKeyword": |
| walkTSAnyKeyword(node, visitors); |
| break; |
| case "TSBigIntKeyword": |
| walkTSBigIntKeyword(node, visitors); |
| break; |
| case "TSBooleanKeyword": |
| walkTSBooleanKeyword(node, visitors); |
| break; |
| case "TSIntrinsicKeyword": |
| walkTSIntrinsicKeyword(node, visitors); |
| break; |
| case "TSJSDocUnknownType": |
| walkTSJSDocUnknownType(node, visitors); |
| break; |
| case "TSNeverKeyword": |
| walkTSNeverKeyword(node, visitors); |
| break; |
| case "TSNullKeyword": |
| walkTSNullKeyword(node, visitors); |
| break; |
| case "TSNumberKeyword": |
| walkTSNumberKeyword(node, visitors); |
| break; |
| case "TSObjectKeyword": |
| walkTSObjectKeyword(node, visitors); |
| break; |
| case "TSStringKeyword": |
| walkTSStringKeyword(node, visitors); |
| break; |
| case "TSSymbolKeyword": |
| walkTSSymbolKeyword(node, visitors); |
| break; |
| case "TSThisType": |
| walkTSThisType(node, visitors); |
| break; |
| case "TSUndefinedKeyword": |
| walkTSUndefinedKeyword(node, visitors); |
| break; |
| case "TSUnknownKeyword": |
| walkTSUnknownKeyword(node, visitors); |
| break; |
| case "TSVoidKeyword": |
| walkTSVoidKeyword(node, visitors); |
| break; |
| case "AccessorProperty": |
| walkAccessorProperty(node, visitors); |
| break; |
| case "ArrayExpression": |
| walkArrayExpression(node, visitors); |
| break; |
| case "ArrayPattern": |
| walkArrayPattern(node, visitors); |
| break; |
| case "ArrowFunctionExpression": |
| walkArrowFunctionExpression(node, visitors); |
| break; |
| case "AssignmentExpression": |
| walkAssignmentExpression(node, visitors); |
| break; |
| case "AssignmentPattern": |
| walkAssignmentPattern(node, visitors); |
| break; |
| case "AwaitExpression": |
| walkAwaitExpression(node, visitors); |
| break; |
| case "BinaryExpression": |
| walkBinaryExpression(node, visitors); |
| break; |
| case "BlockStatement": |
| walkBlockStatement(node, visitors); |
| break; |
| case "BreakStatement": |
| walkBreakStatement(node, visitors); |
| break; |
| case "CallExpression": |
| walkCallExpression(node, visitors); |
| break; |
| case "CatchClause": |
| walkCatchClause(node, visitors); |
| break; |
| case "ChainExpression": |
| walkChainExpression(node, visitors); |
| break; |
| case "ClassBody": |
| walkClassBody(node, visitors); |
| break; |
| case "ClassDeclaration": |
| walkClassDeclaration(node, visitors); |
| break; |
| case "ClassExpression": |
| walkClassExpression(node, visitors); |
| break; |
| case "ConditionalExpression": |
| walkConditionalExpression(node, visitors); |
| break; |
| case "ContinueStatement": |
| walkContinueStatement(node, visitors); |
| break; |
| case "Decorator": |
| walkDecorator(node, visitors); |
| break; |
| case "DoWhileStatement": |
| walkDoWhileStatement(node, visitors); |
| break; |
| case "ExportAllDeclaration": |
| walkExportAllDeclaration(node, visitors); |
| break; |
| case "ExportDefaultDeclaration": |
| walkExportDefaultDeclaration(node, visitors); |
| break; |
| case "ExportNamedDeclaration": |
| walkExportNamedDeclaration(node, visitors); |
| break; |
| case "ExportSpecifier": |
| walkExportSpecifier(node, visitors); |
| break; |
| case "ExpressionStatement": |
| walkExpressionStatement(node, visitors); |
| break; |
| case "ForInStatement": |
| walkForInStatement(node, visitors); |
| break; |
| case "ForOfStatement": |
| walkForOfStatement(node, visitors); |
| break; |
| case "ForStatement": |
| walkForStatement(node, visitors); |
| break; |
| case "FunctionDeclaration": |
| walkFunctionDeclaration(node, visitors); |
| break; |
| case "FunctionExpression": |
| walkFunctionExpression(node, visitors); |
| break; |
| case "Identifier": |
| walkIdentifier(node, visitors); |
| break; |
| case "IfStatement": |
| walkIfStatement(node, visitors); |
| break; |
| case "ImportAttribute": |
| walkImportAttribute(node, visitors); |
| break; |
| case "ImportDeclaration": |
| walkImportDeclaration(node, visitors); |
| break; |
| case "ImportDefaultSpecifier": |
| walkImportDefaultSpecifier(node, visitors); |
| break; |
| case "ImportExpression": |
| walkImportExpression(node, visitors); |
| break; |
| case "ImportNamespaceSpecifier": |
| walkImportNamespaceSpecifier(node, visitors); |
| break; |
| case "ImportSpecifier": |
| walkImportSpecifier(node, visitors); |
| break; |
| case "LabeledStatement": |
| walkLabeledStatement(node, visitors); |
| break; |
| case "LogicalExpression": |
| walkLogicalExpression(node, visitors); |
| break; |
| case "MemberExpression": |
| walkMemberExpression(node, visitors); |
| break; |
| case "MetaProperty": |
| walkMetaProperty(node, visitors); |
| break; |
| case "MethodDefinition": |
| walkMethodDefinition(node, visitors); |
| break; |
| case "NewExpression": |
| walkNewExpression(node, visitors); |
| break; |
| case "ObjectExpression": |
| walkObjectExpression(node, visitors); |
| break; |
| case "ObjectPattern": |
| walkObjectPattern(node, visitors); |
| break; |
| case "ParenthesizedExpression": |
| walkParenthesizedExpression(node, visitors); |
| break; |
| case "Program": |
| walkProgram(node, visitors); |
| break; |
| case "Property": |
| walkProperty(node, visitors); |
| break; |
| case "PropertyDefinition": |
| walkPropertyDefinition(node, visitors); |
| break; |
| case "RestElement": |
| walkRestElement(node, visitors); |
| break; |
| case "ReturnStatement": |
| walkReturnStatement(node, visitors); |
| break; |
| case "SequenceExpression": |
| walkSequenceExpression(node, visitors); |
| break; |
| case "SpreadElement": |
| walkSpreadElement(node, visitors); |
| break; |
| case "StaticBlock": |
| walkStaticBlock(node, visitors); |
| break; |
| case "SwitchCase": |
| walkSwitchCase(node, visitors); |
| break; |
| case "SwitchStatement": |
| walkSwitchStatement(node, visitors); |
| break; |
| case "TaggedTemplateExpression": |
| walkTaggedTemplateExpression(node, visitors); |
| break; |
| case "TemplateLiteral": |
| walkTemplateLiteral(node, visitors); |
| break; |
| case "ThrowStatement": |
| walkThrowStatement(node, visitors); |
| break; |
| case "TryStatement": |
| walkTryStatement(node, visitors); |
| break; |
| case "UnaryExpression": |
| walkUnaryExpression(node, visitors); |
| break; |
| case "UpdateExpression": |
| walkUpdateExpression(node, visitors); |
| break; |
| case "V8IntrinsicExpression": |
| walkV8IntrinsicExpression(node, visitors); |
| break; |
| case "VariableDeclaration": |
| walkVariableDeclaration(node, visitors); |
| break; |
| case "VariableDeclarator": |
| walkVariableDeclarator(node, visitors); |
| break; |
| case "WhileStatement": |
| walkWhileStatement(node, visitors); |
| break; |
| case "WithStatement": |
| walkWithStatement(node, visitors); |
| break; |
| case "YieldExpression": |
| walkYieldExpression(node, visitors); |
| break; |
| case "JSXAttribute": |
| walkJSXAttribute(node, visitors); |
| break; |
| case "JSXClosingElement": |
| walkJSXClosingElement(node, visitors); |
| break; |
| case "JSXElement": |
| walkJSXElement(node, visitors); |
| break; |
| case "JSXExpressionContainer": |
| walkJSXExpressionContainer(node, visitors); |
| break; |
| case "JSXFragment": |
| walkJSXFragment(node, visitors); |
| break; |
| case "JSXMemberExpression": |
| walkJSXMemberExpression(node, visitors); |
| break; |
| case "JSXNamespacedName": |
| walkJSXNamespacedName(node, visitors); |
| break; |
| case "JSXOpeningElement": |
| walkJSXOpeningElement(node, visitors); |
| break; |
| case "JSXSpreadAttribute": |
| walkJSXSpreadAttribute(node, visitors); |
| break; |
| case "JSXSpreadChild": |
| walkJSXSpreadChild(node, visitors); |
| break; |
| case "TSAbstractAccessorProperty": |
| walkTSAbstractAccessorProperty(node, visitors); |
| break; |
| case "TSAbstractMethodDefinition": |
| walkTSAbstractMethodDefinition(node, visitors); |
| break; |
| case "TSAbstractPropertyDefinition": |
| walkTSAbstractPropertyDefinition(node, visitors); |
| break; |
| case "TSArrayType": |
| walkTSArrayType(node, visitors); |
| break; |
| case "TSAsExpression": |
| walkTSAsExpression(node, visitors); |
| break; |
| case "TSCallSignatureDeclaration": |
| walkTSCallSignatureDeclaration(node, visitors); |
| break; |
| case "TSClassImplements": |
| walkTSClassImplements(node, visitors); |
| break; |
| case "TSConditionalType": |
| walkTSConditionalType(node, visitors); |
| break; |
| case "TSConstructSignatureDeclaration": |
| walkTSConstructSignatureDeclaration(node, visitors); |
| break; |
| case "TSConstructorType": |
| walkTSConstructorType(node, visitors); |
| break; |
| case "TSDeclareFunction": |
| walkTSDeclareFunction(node, visitors); |
| break; |
| case "TSEmptyBodyFunctionExpression": |
| walkTSEmptyBodyFunctionExpression(node, visitors); |
| break; |
| case "TSEnumBody": |
| walkTSEnumBody(node, visitors); |
| break; |
| case "TSEnumDeclaration": |
| walkTSEnumDeclaration(node, visitors); |
| break; |
| case "TSEnumMember": |
| walkTSEnumMember(node, visitors); |
| break; |
| case "TSExportAssignment": |
| walkTSExportAssignment(node, visitors); |
| break; |
| case "TSExternalModuleReference": |
| walkTSExternalModuleReference(node, visitors); |
| break; |
| case "TSFunctionType": |
| walkTSFunctionType(node, visitors); |
| break; |
| case "TSImportEqualsDeclaration": |
| walkTSImportEqualsDeclaration(node, visitors); |
| break; |
| case "TSImportType": |
| walkTSImportType(node, visitors); |
| break; |
| case "TSIndexSignature": |
| walkTSIndexSignature(node, visitors); |
| break; |
| case "TSIndexedAccessType": |
| walkTSIndexedAccessType(node, visitors); |
| break; |
| case "TSInferType": |
| walkTSInferType(node, visitors); |
| break; |
| case "TSInstantiationExpression": |
| walkTSInstantiationExpression(node, visitors); |
| break; |
| case "TSInterfaceBody": |
| walkTSInterfaceBody(node, visitors); |
| break; |
| case "TSInterfaceDeclaration": |
| walkTSInterfaceDeclaration(node, visitors); |
| break; |
| case "TSInterfaceHeritage": |
| walkTSInterfaceHeritage(node, visitors); |
| break; |
| case "TSIntersectionType": |
| walkTSIntersectionType(node, visitors); |
| break; |
| case "TSJSDocNonNullableType": |
| walkTSJSDocNonNullableType(node, visitors); |
| break; |
| case "TSJSDocNullableType": |
| walkTSJSDocNullableType(node, visitors); |
| break; |
| case "TSLiteralType": |
| walkTSLiteralType(node, visitors); |
| break; |
| case "TSMappedType": |
| walkTSMappedType(node, visitors); |
| break; |
| case "TSMethodSignature": |
| walkTSMethodSignature(node, visitors); |
| break; |
| case "TSModuleBlock": |
| walkTSModuleBlock(node, visitors); |
| break; |
| case "TSModuleDeclaration": |
| walkTSModuleDeclaration(node, visitors); |
| break; |
| case "TSNamedTupleMember": |
| walkTSNamedTupleMember(node, visitors); |
| break; |
| case "TSNamespaceExportDeclaration": |
| walkTSNamespaceExportDeclaration(node, visitors); |
| break; |
| case "TSNonNullExpression": |
| walkTSNonNullExpression(node, visitors); |
| break; |
| case "TSOptionalType": |
| walkTSOptionalType(node, visitors); |
| break; |
| case "TSParameterProperty": |
| walkTSParameterProperty(node, visitors); |
| break; |
| case "TSParenthesizedType": |
| walkTSParenthesizedType(node, visitors); |
| break; |
| case "TSPropertySignature": |
| walkTSPropertySignature(node, visitors); |
| break; |
| case "TSQualifiedName": |
| walkTSQualifiedName(node, visitors); |
| break; |
| case "TSRestType": |
| walkTSRestType(node, visitors); |
| break; |
| case "TSSatisfiesExpression": |
| walkTSSatisfiesExpression(node, visitors); |
| break; |
| case "TSTemplateLiteralType": |
| walkTSTemplateLiteralType(node, visitors); |
| break; |
| case "TSTupleType": |
| walkTSTupleType(node, visitors); |
| break; |
| case "TSTypeAliasDeclaration": |
| walkTSTypeAliasDeclaration(node, visitors); |
| break; |
| case "TSTypeAnnotation": |
| walkTSTypeAnnotation(node, visitors); |
| break; |
| case "TSTypeAssertion": |
| walkTSTypeAssertion(node, visitors); |
| break; |
| case "TSTypeLiteral": |
| walkTSTypeLiteral(node, visitors); |
| break; |
| case "TSTypeOperator": |
| walkTSTypeOperator(node, visitors); |
| break; |
| case "TSTypeParameter": |
| walkTSTypeParameter(node, visitors); |
| break; |
| case "TSTypeParameterDeclaration": |
| walkTSTypeParameterDeclaration(node, visitors); |
| break; |
| case "TSTypeParameterInstantiation": |
| walkTSTypeParameterInstantiation(node, visitors); |
| break; |
| case "TSTypePredicate": |
| walkTSTypePredicate(node, visitors); |
| break; |
| case "TSTypeQuery": |
| walkTSTypeQuery(node, visitors); |
| break; |
| case "TSTypeReference": |
| walkTSTypeReference(node, visitors); |
| break; |
| case "TSUnionType": |
| walkTSUnionType(node, visitors); |
| break; |
| } |
| } |
| function walkDebuggerStatement(node, visitors) { |
| let visit = visitors[0]; |
| visit !== null && visit(node); |
| } |
| function walkEmptyStatement(node, visitors) { |
| let visit = visitors[1]; |
| visit !== null && visit(node); |
| } |
| function walkLiteral(node, visitors) { |
| let visit = visitors[2]; |
| visit !== null && visit(node); |
| } |
| function walkPrivateIdentifier(node, visitors) { |
| let visit = visitors[3]; |
| visit !== null && visit(node); |
| } |
| function walkSuper(node, visitors) { |
| let visit = visitors[4]; |
| visit !== null && visit(node); |
| } |
| function walkTemplateElement(node, visitors) { |
| let visit = visitors[5]; |
| visit !== null && visit(node); |
| } |
| function walkThisExpression(node, visitors) { |
| let visit = visitors[6]; |
| visit !== null && visit(node); |
| } |
| function walkJSXClosingFragment(node, visitors) { |
| let visit = visitors[7]; |
| visit !== null && visit(node); |
| } |
| function walkJSXEmptyExpression(node, visitors) { |
| let visit = visitors[8]; |
| visit !== null && visit(node); |
| } |
| function walkJSXIdentifier(node, visitors) { |
| let visit = visitors[9]; |
| visit !== null && visit(node); |
| } |
| function walkJSXOpeningFragment(node, visitors) { |
| let visit = visitors[10]; |
| visit !== null && visit(node); |
| } |
| function walkJSXText(node, visitors) { |
| let visit = visitors[11]; |
| visit !== null && visit(node); |
| } |
| function walkTSAnyKeyword(node, visitors) { |
| let visit = visitors[12]; |
| visit !== null && visit(node); |
| } |
| function walkTSBigIntKeyword(node, visitors) { |
| let visit = visitors[13]; |
| visit !== null && visit(node); |
| } |
| function walkTSBooleanKeyword(node, visitors) { |
| let visit = visitors[14]; |
| visit !== null && visit(node); |
| } |
| function walkTSIntrinsicKeyword(node, visitors) { |
| let visit = visitors[15]; |
| visit !== null && visit(node); |
| } |
| function walkTSJSDocUnknownType(node, visitors) { |
| let visit = visitors[16]; |
| visit !== null && visit(node); |
| } |
| function walkTSNeverKeyword(node, visitors) { |
| let visit = visitors[17]; |
| visit !== null && visit(node); |
| } |
| function walkTSNullKeyword(node, visitors) { |
| let visit = visitors[18]; |
| visit !== null && visit(node); |
| } |
| function walkTSNumberKeyword(node, visitors) { |
| let visit = visitors[19]; |
| visit !== null && visit(node); |
| } |
| function walkTSObjectKeyword(node, visitors) { |
| let visit = visitors[20]; |
| visit !== null && visit(node); |
| } |
| function walkTSStringKeyword(node, visitors) { |
| let visit = visitors[21]; |
| visit !== null && visit(node); |
| } |
| function walkTSSymbolKeyword(node, visitors) { |
| let visit = visitors[22]; |
| visit !== null && visit(node); |
| } |
| function walkTSThisType(node, visitors) { |
| let visit = visitors[23]; |
| visit !== null && visit(node); |
| } |
| function walkTSUndefinedKeyword(node, visitors) { |
| let visit = visitors[24]; |
| visit !== null && visit(node); |
| } |
| function walkTSUnknownKeyword(node, visitors) { |
| let visit = visitors[25]; |
| visit !== null && visit(node); |
| } |
| function walkTSVoidKeyword(node, visitors) { |
| let visit = visitors[26]; |
| visit !== null && visit(node); |
| } |
| function walkAccessorProperty(node, visitors) { |
| let enterExit = visitors[27], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.key, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| walkNode(node.value, visitors); |
| exit !== null && exit(node); |
| } |
| function walkArrayExpression(node, visitors) { |
| let enterExit = visitors[28], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.elements, visitors); |
| exit !== null && exit(node); |
| } |
| function walkArrayPattern(node, visitors) { |
| let enterExit = visitors[29], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.elements, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkArrowFunctionExpression(node, visitors) { |
| let enterExit = visitors[30], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkAssignmentExpression(node, visitors) { |
| let enterExit = visitors[31], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.left, visitors); |
| walkNode(node.right, visitors); |
| exit !== null && exit(node); |
| } |
| function walkAssignmentPattern(node, visitors) { |
| let enterExit = visitors[32], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.left, visitors); |
| walkNode(node.right, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkAwaitExpression(node, visitors) { |
| let enterExit = visitors[33], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkBinaryExpression(node, visitors) { |
| let enterExit = visitors[34], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.left, visitors); |
| walkNode(node.right, visitors); |
| exit !== null && exit(node); |
| } |
| function walkBlockStatement(node, visitors) { |
| let enterExit = visitors[35], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkBreakStatement(node, visitors) { |
| let enterExit = visitors[36], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.label, visitors); |
| exit !== null && exit(node); |
| } |
| function walkCallExpression(node, visitors) { |
| let enterExit = visitors[37], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.callee, visitors); |
| walkNode(node.typeArguments, visitors); |
| walkNode(node.arguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkCatchClause(node, visitors) { |
| let enterExit = visitors[38], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.param, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkChainExpression(node, visitors) { |
| let enterExit = visitors[39], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkClassBody(node, visitors) { |
| let enterExit = visitors[40], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkClassDeclaration(node, visitors) { |
| let enterExit = visitors[41], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.superClass, visitors); |
| walkNode(node.superTypeArguments, visitors); |
| walkNode(node.implements, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkClassExpression(node, visitors) { |
| let enterExit = visitors[42], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.superClass, visitors); |
| walkNode(node.superTypeArguments, visitors); |
| walkNode(node.implements, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkConditionalExpression(node, visitors) { |
| let enterExit = visitors[43], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.test, visitors); |
| walkNode(node.consequent, visitors); |
| walkNode(node.alternate, visitors); |
| exit !== null && exit(node); |
| } |
| function walkContinueStatement(node, visitors) { |
| let enterExit = visitors[44], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.label, visitors); |
| exit !== null && exit(node); |
| } |
| function walkDecorator(node, visitors) { |
| let enterExit = visitors[45], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkDoWhileStatement(node, visitors) { |
| let enterExit = visitors[46], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.body, visitors); |
| walkNode(node.test, visitors); |
| exit !== null && exit(node); |
| } |
| function walkExportAllDeclaration(node, visitors) { |
| let enterExit = visitors[47], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.exported, visitors); |
| walkNode(node.source, visitors); |
| walkNode(node.attributes, visitors); |
| exit !== null && exit(node); |
| } |
| function walkExportDefaultDeclaration(node, visitors) { |
| let enterExit = visitors[48], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.declaration, visitors); |
| exit !== null && exit(node); |
| } |
| function walkExportNamedDeclaration(node, visitors) { |
| let enterExit = visitors[49], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.declaration, visitors); |
| walkNode(node.specifiers, visitors); |
| walkNode(node.source, visitors); |
| walkNode(node.attributes, visitors); |
| exit !== null && exit(node); |
| } |
| function walkExportSpecifier(node, visitors) { |
| let enterExit = visitors[50], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.local, visitors); |
| walkNode(node.exported, visitors); |
| exit !== null && exit(node); |
| } |
| function walkExpressionStatement(node, visitors) { |
| let enterExit = visitors[51], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkForInStatement(node, visitors) { |
| let enterExit = visitors[52], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.left, visitors); |
| walkNode(node.right, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkForOfStatement(node, visitors) { |
| let enterExit = visitors[53], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.left, visitors); |
| walkNode(node.right, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkForStatement(node, visitors) { |
| let enterExit = visitors[54], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.init, visitors); |
| walkNode(node.test, visitors); |
| walkNode(node.update, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkFunctionDeclaration(node, visitors) { |
| let enterExit = visitors[55], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkFunctionExpression(node, visitors) { |
| let enterExit = visitors[56], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkIdentifier(node, visitors) { |
| let enterExit = visitors[57], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkIfStatement(node, visitors) { |
| let enterExit = visitors[58], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.test, visitors); |
| walkNode(node.consequent, visitors); |
| walkNode(node.alternate, visitors); |
| exit !== null && exit(node); |
| } |
| function walkImportAttribute(node, visitors) { |
| let enterExit = visitors[59], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.key, visitors); |
| walkNode(node.value, visitors); |
| exit !== null && exit(node); |
| } |
| function walkImportDeclaration(node, visitors) { |
| let enterExit = visitors[60], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.specifiers, visitors); |
| walkNode(node.source, visitors); |
| walkNode(node.attributes, visitors); |
| exit !== null && exit(node); |
| } |
| function walkImportDefaultSpecifier(node, visitors) { |
| let enterExit = visitors[61], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.local, visitors); |
| exit !== null && exit(node); |
| } |
| function walkImportExpression(node, visitors) { |
| let enterExit = visitors[62], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.source, visitors); |
| walkNode(node.options, visitors); |
| exit !== null && exit(node); |
| } |
| function walkImportNamespaceSpecifier(node, visitors) { |
| let enterExit = visitors[63], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.local, visitors); |
| exit !== null && exit(node); |
| } |
| function walkImportSpecifier(node, visitors) { |
| let enterExit = visitors[64], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.imported, visitors); |
| walkNode(node.local, visitors); |
| exit !== null && exit(node); |
| } |
| function walkLabeledStatement(node, visitors) { |
| let enterExit = visitors[65], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.label, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkLogicalExpression(node, visitors) { |
| let enterExit = visitors[66], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.left, visitors); |
| walkNode(node.right, visitors); |
| exit !== null && exit(node); |
| } |
| function walkMemberExpression(node, visitors) { |
| let enterExit = visitors[67], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.object, visitors); |
| walkNode(node.property, visitors); |
| exit !== null && exit(node); |
| } |
| function walkMetaProperty(node, visitors) { |
| let enterExit = visitors[68], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.meta, visitors); |
| walkNode(node.property, visitors); |
| exit !== null && exit(node); |
| } |
| function walkMethodDefinition(node, visitors) { |
| let enterExit = visitors[69], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.key, visitors); |
| walkNode(node.value, visitors); |
| exit !== null && exit(node); |
| } |
| function walkNewExpression(node, visitors) { |
| let enterExit = visitors[70], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.callee, visitors); |
| walkNode(node.typeArguments, visitors); |
| walkNode(node.arguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkObjectExpression(node, visitors) { |
| let enterExit = visitors[71], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.properties, visitors); |
| exit !== null && exit(node); |
| } |
| function walkObjectPattern(node, visitors) { |
| let enterExit = visitors[72], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.properties, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkParenthesizedExpression(node, visitors) { |
| let enterExit = visitors[73], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkProgram(node, visitors) { |
| let enterExit = visitors[74], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkProperty(node, visitors) { |
| let enterExit = visitors[75], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.key, visitors); |
| walkNode(node.value, visitors); |
| exit !== null && exit(node); |
| } |
| function walkPropertyDefinition(node, visitors) { |
| let enterExit = visitors[76], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.key, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| walkNode(node.value, visitors); |
| exit !== null && exit(node); |
| } |
| function walkRestElement(node, visitors) { |
| let enterExit = visitors[77], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.argument, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkReturnStatement(node, visitors) { |
| let enterExit = visitors[78], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkSequenceExpression(node, visitors) { |
| let enterExit = visitors[79], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expressions, visitors); |
| exit !== null && exit(node); |
| } |
| function walkSpreadElement(node, visitors) { |
| let enterExit = visitors[80], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkStaticBlock(node, visitors) { |
| let enterExit = visitors[81], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkSwitchCase(node, visitors) { |
| let enterExit = visitors[82], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.test, visitors); |
| walkNode(node.consequent, visitors); |
| exit !== null && exit(node); |
| } |
| function walkSwitchStatement(node, visitors) { |
| let enterExit = visitors[83], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.discriminant, visitors); |
| walkNode(node.cases, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTaggedTemplateExpression(node, visitors) { |
| let enterExit = visitors[84], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.tag, visitors); |
| walkNode(node.typeArguments, visitors); |
| walkNode(node.quasi, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTemplateLiteral(node, visitors) { |
| let enterExit = visitors[85], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.quasis, visitors); |
| walkNode(node.expressions, visitors); |
| exit !== null && exit(node); |
| } |
| function walkThrowStatement(node, visitors) { |
| let enterExit = visitors[86], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTryStatement(node, visitors) { |
| let enterExit = visitors[87], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.block, visitors); |
| walkNode(node.handler, visitors); |
| walkNode(node.finalizer, visitors); |
| exit !== null && exit(node); |
| } |
| function walkUnaryExpression(node, visitors) { |
| let enterExit = visitors[88], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkUpdateExpression(node, visitors) { |
| let enterExit = visitors[89], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkV8IntrinsicExpression(node, visitors) { |
| let enterExit = visitors[90], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.name, visitors); |
| walkNode(node.arguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkVariableDeclaration(node, visitors) { |
| let enterExit = visitors[91], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.declarations, visitors); |
| exit !== null && exit(node); |
| } |
| function walkVariableDeclarator(node, visitors) { |
| let enterExit = visitors[92], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.init, visitors); |
| exit !== null && exit(node); |
| } |
| function walkWhileStatement(node, visitors) { |
| let enterExit = visitors[93], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.test, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkWithStatement(node, visitors) { |
| let enterExit = visitors[94], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.object, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkYieldExpression(node, visitors) { |
| let enterExit = visitors[95], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXAttribute(node, visitors) { |
| let enterExit = visitors[96], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.name, visitors); |
| walkNode(node.value, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXClosingElement(node, visitors) { |
| let enterExit = visitors[97], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.name, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXElement(node, visitors) { |
| let enterExit = visitors[98], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.openingElement, visitors); |
| walkNode(node.children, visitors); |
| walkNode(node.closingElement, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXExpressionContainer(node, visitors) { |
| let enterExit = visitors[99], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXFragment(node, visitors) { |
| let enterExit = visitors[100], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.openingFragment, visitors); |
| walkNode(node.children, visitors); |
| walkNode(node.closingFragment, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXMemberExpression(node, visitors) { |
| let enterExit = visitors[101], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.object, visitors); |
| walkNode(node.property, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXNamespacedName(node, visitors) { |
| let enterExit = visitors[102], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.namespace, visitors); |
| walkNode(node.name, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXOpeningElement(node, visitors) { |
| let enterExit = visitors[103], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.name, visitors); |
| walkNode(node.typeArguments, visitors); |
| walkNode(node.attributes, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXSpreadAttribute(node, visitors) { |
| let enterExit = visitors[104], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.argument, visitors); |
| exit !== null && exit(node); |
| } |
| function walkJSXSpreadChild(node, visitors) { |
| let enterExit = visitors[105], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSAbstractAccessorProperty(node, visitors) { |
| let enterExit = visitors[106], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.key, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSAbstractMethodDefinition(node, visitors) { |
| let enterExit = visitors[107], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.key, visitors); |
| walkNode(node.value, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSAbstractPropertyDefinition(node, visitors) { |
| let enterExit = visitors[108], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.key, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSArrayType(node, visitors) { |
| let enterExit = visitors[109], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.elementType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSAsExpression(node, visitors) { |
| let enterExit = visitors[110], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSCallSignatureDeclaration(node, visitors) { |
| let enterExit = visitors[111], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSClassImplements(node, visitors) { |
| let enterExit = visitors[112], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| walkNode(node.typeArguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSConditionalType(node, visitors) { |
| let enterExit = visitors[113], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.checkType, visitors); |
| walkNode(node.extendsType, visitors); |
| walkNode(node.trueType, visitors); |
| walkNode(node.falseType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSConstructSignatureDeclaration(node, visitors) { |
| let enterExit = visitors[114], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSConstructorType(node, visitors) { |
| let enterExit = visitors[115], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSDeclareFunction(node, visitors) { |
| let enterExit = visitors[116], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSEmptyBodyFunctionExpression(node, visitors) { |
| let enterExit = visitors[117], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSEnumBody(node, visitors) { |
| let enterExit = visitors[118], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.members, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSEnumDeclaration(node, visitors) { |
| let enterExit = visitors[119], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSEnumMember(node, visitors) { |
| let enterExit = visitors[120], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.initializer, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSExportAssignment(node, visitors) { |
| let enterExit = visitors[121], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSExternalModuleReference(node, visitors) { |
| let enterExit = visitors[122], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSFunctionType(node, visitors) { |
| let enterExit = visitors[123], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSImportEqualsDeclaration(node, visitors) { |
| let enterExit = visitors[124], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.moduleReference, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSImportType(node, visitors) { |
| let enterExit = visitors[125], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.source, visitors); |
| walkNode(node.options, visitors); |
| walkNode(node.qualifier, visitors); |
| walkNode(node.typeArguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSIndexSignature(node, visitors) { |
| let enterExit = visitors[126], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.parameters, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSIndexedAccessType(node, visitors) { |
| let enterExit = visitors[127], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.objectType, visitors); |
| walkNode(node.indexType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSInferType(node, visitors) { |
| let enterExit = visitors[128], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeParameter, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSInstantiationExpression(node, visitors) { |
| let enterExit = visitors[129], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| walkNode(node.typeArguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSInterfaceBody(node, visitors) { |
| let enterExit = visitors[130], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSInterfaceDeclaration(node, visitors) { |
| let enterExit = visitors[131], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.extends, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSInterfaceHeritage(node, visitors) { |
| let enterExit = visitors[132], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| walkNode(node.typeArguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSIntersectionType(node, visitors) { |
| let enterExit = visitors[133], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.types, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSJSDocNonNullableType(node, visitors) { |
| let enterExit = visitors[134], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSJSDocNullableType(node, visitors) { |
| let enterExit = visitors[135], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSLiteralType(node, visitors) { |
| let enterExit = visitors[136], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.literal, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSMappedType(node, visitors) { |
| let enterExit = visitors[137], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.key, visitors); |
| walkNode(node.constraint, visitors); |
| walkNode(node.nameType, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSMethodSignature(node, visitors) { |
| let enterExit = visitors[138], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.key, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.params, visitors); |
| walkNode(node.returnType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSModuleBlock(node, visitors) { |
| let enterExit = visitors[139], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSModuleDeclaration(node, visitors) { |
| let enterExit = visitors[140], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.body, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSNamedTupleMember(node, visitors) { |
| let enterExit = visitors[141], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.label, visitors); |
| walkNode(node.elementType, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSNamespaceExportDeclaration(node, visitors) { |
| let enterExit = visitors[142], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSNonNullExpression(node, visitors) { |
| let enterExit = visitors[143], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSOptionalType(node, visitors) { |
| let enterExit = visitors[144], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSParameterProperty(node, visitors) { |
| let enterExit = visitors[145], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.decorators, visitors); |
| walkNode(node.parameter, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSParenthesizedType(node, visitors) { |
| let enterExit = visitors[146], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSPropertySignature(node, visitors) { |
| let enterExit = visitors[147], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.key, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSQualifiedName(node, visitors) { |
| let enterExit = visitors[148], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.left, visitors); |
| walkNode(node.right, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSRestType(node, visitors) { |
| let enterExit = visitors[149], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSSatisfiesExpression(node, visitors) { |
| let enterExit = visitors[150], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.expression, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTemplateLiteralType(node, visitors) { |
| let enterExit = visitors[151], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.quasis, visitors); |
| walkNode(node.types, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTupleType(node, visitors) { |
| let enterExit = visitors[152], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.elementTypes, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeAliasDeclaration(node, visitors) { |
| let enterExit = visitors[153], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.id, visitors); |
| walkNode(node.typeParameters, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeAnnotation(node, visitors) { |
| let enterExit = visitors[154], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeAssertion(node, visitors) { |
| let enterExit = visitors[155], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| walkNode(node.expression, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeLiteral(node, visitors) { |
| let enterExit = visitors[156], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.members, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeOperator(node, visitors) { |
| let enterExit = visitors[157], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeParameter(node, visitors) { |
| let enterExit = visitors[158], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.name, visitors); |
| walkNode(node.constraint, visitors); |
| walkNode(node.default, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeParameterDeclaration(node, visitors) { |
| let enterExit = visitors[159], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.params, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeParameterInstantiation(node, visitors) { |
| let enterExit = visitors[160], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.params, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypePredicate(node, visitors) { |
| let enterExit = visitors[161], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.parameterName, visitors); |
| walkNode(node.typeAnnotation, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeQuery(node, visitors) { |
| let enterExit = visitors[162], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.exprName, visitors); |
| walkNode(node.typeArguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSTypeReference(node, visitors) { |
| let enterExit = visitors[163], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.typeName, visitors); |
| walkNode(node.typeArguments, visitors); |
| exit !== null && exit(node); |
| } |
| function walkTSUnionType(node, visitors) { |
| let enterExit = visitors[164], exit = null, enter; |
| if (enterExit !== null) { |
| ({enter, exit} = enterExit); |
| enter !== null && enter(node); |
| } |
| walkNode(node.types, visitors); |
| exit !== null && exit(node); |
| } |
| |
| |
| |
| const NODE_TYPE_IDS_MAP = new Map([ |
| ["DebuggerStatement", 0], |
| ["EmptyStatement", 1], |
| ["Literal", 2], |
| ["PrivateIdentifier", 3], |
| ["Super", 4], |
| ["TemplateElement", 5], |
| ["ThisExpression", 6], |
| ["JSXClosingFragment", 7], |
| ["JSXEmptyExpression", 8], |
| ["JSXIdentifier", 9], |
| ["JSXOpeningFragment", 10], |
| ["JSXText", 11], |
| ["TSAnyKeyword", 12], |
| ["TSBigIntKeyword", 13], |
| ["TSBooleanKeyword", 14], |
| ["TSIntrinsicKeyword", 15], |
| ["TSJSDocUnknownType", 16], |
| ["TSNeverKeyword", 17], |
| ["TSNullKeyword", 18], |
| ["TSNumberKeyword", 19], |
| ["TSObjectKeyword", 20], |
| ["TSStringKeyword", 21], |
| ["TSSymbolKeyword", 22], |
| ["TSThisType", 23], |
| ["TSUndefinedKeyword", 24], |
| ["TSUnknownKeyword", 25], |
| ["TSVoidKeyword", 26], |
| ["AccessorProperty", 27], |
| ["ArrayExpression", 28], |
| ["ArrayPattern", 29], |
| ["ArrowFunctionExpression", 30], |
| ["AssignmentExpression", 31], |
| ["AssignmentPattern", 32], |
| ["AwaitExpression", 33], |
| ["BinaryExpression", 34], |
| ["BlockStatement", 35], |
| ["BreakStatement", 36], |
| ["CallExpression", 37], |
| ["CatchClause", 38], |
| ["ChainExpression", 39], |
| ["ClassBody", 40], |
| ["ClassDeclaration", 41], |
| ["ClassExpression", 42], |
| ["ConditionalExpression", 43], |
| ["ContinueStatement", 44], |
| ["Decorator", 45], |
| ["DoWhileStatement", 46], |
| ["ExportAllDeclaration", 47], |
| ["ExportDefaultDeclaration", 48], |
| ["ExportNamedDeclaration", 49], |
| ["ExportSpecifier", 50], |
| ["ExpressionStatement", 51], |
| ["ForInStatement", 52], |
| ["ForOfStatement", 53], |
| ["ForStatement", 54], |
| ["FunctionDeclaration", 55], |
| ["FunctionExpression", 56], |
| ["Identifier", 57], |
| ["IfStatement", 58], |
| ["ImportAttribute", 59], |
| ["ImportDeclaration", 60], |
| ["ImportDefaultSpecifier", 61], |
| ["ImportExpression", 62], |
| ["ImportNamespaceSpecifier", 63], |
| ["ImportSpecifier", 64], |
| ["LabeledStatement", 65], |
| ["LogicalExpression", 66], |
| ["MemberExpression", 67], |
| ["MetaProperty", 68], |
| ["MethodDefinition", 69], |
| ["NewExpression", 70], |
| ["ObjectExpression", 71], |
| ["ObjectPattern", 72], |
| ["ParenthesizedExpression", 73], |
| ["Program", 74], |
| ["Property", 75], |
| ["PropertyDefinition", 76], |
| ["RestElement", 77], |
| ["ReturnStatement", 78], |
| ["SequenceExpression", 79], |
| ["SpreadElement", 80], |
| ["StaticBlock", 81], |
| ["SwitchCase", 82], |
| ["SwitchStatement", 83], |
| ["TaggedTemplateExpression", 84], |
| ["TemplateLiteral", 85], |
| ["ThrowStatement", 86], |
| ["TryStatement", 87], |
| ["UnaryExpression", 88], |
| ["UpdateExpression", 89], |
| ["V8IntrinsicExpression", 90], |
| ["VariableDeclaration", 91], |
| ["VariableDeclarator", 92], |
| ["WhileStatement", 93], |
| ["WithStatement", 94], |
| ["YieldExpression", 95], |
| ["JSXAttribute", 96], |
| ["JSXClosingElement", 97], |
| ["JSXElement", 98], |
| ["JSXExpressionContainer", 99], |
| ["JSXFragment", 100], |
| ["JSXMemberExpression", 101], |
| ["JSXNamespacedName", 102], |
| ["JSXOpeningElement", 103], |
| ["JSXSpreadAttribute", 104], |
| ["JSXSpreadChild", 105], |
| ["TSAbstractAccessorProperty", 106], |
| ["TSAbstractMethodDefinition", 107], |
| ["TSAbstractPropertyDefinition", 108], |
| ["TSArrayType", 109], |
| ["TSAsExpression", 110], |
| ["TSCallSignatureDeclaration", 111], |
| ["TSClassImplements", 112], |
| ["TSConditionalType", 113], |
| ["TSConstructSignatureDeclaration", 114], |
| ["TSConstructorType", 115], |
| ["TSDeclareFunction", 116], |
| ["TSEmptyBodyFunctionExpression", 117], |
| ["TSEnumBody", 118], |
| ["TSEnumDeclaration", 119], |
| ["TSEnumMember", 120], |
| ["TSExportAssignment", 121], |
| ["TSExternalModuleReference", 122], |
| ["TSFunctionType", 123], |
| ["TSImportEqualsDeclaration", 124], |
| ["TSImportType", 125], |
| ["TSIndexSignature", 126], |
| ["TSIndexedAccessType", 127], |
| ["TSInferType", 128], |
| ["TSInstantiationExpression", 129], |
| ["TSInterfaceBody", 130], |
| ["TSInterfaceDeclaration", 131], |
| ["TSInterfaceHeritage", 132], |
| ["TSIntersectionType", 133], |
| ["TSJSDocNonNullableType", 134], |
| ["TSJSDocNullableType", 135], |
| ["TSLiteralType", 136], |
| ["TSMappedType", 137], |
| ["TSMethodSignature", 138], |
| ["TSModuleBlock", 139], |
| ["TSModuleDeclaration", 140], |
| ["TSNamedTupleMember", 141], |
| ["TSNamespaceExportDeclaration", 142], |
| ["TSNonNullExpression", 143], |
| ["TSOptionalType", 144], |
| ["TSParameterProperty", 145], |
| ["TSParenthesizedType", 146], |
| ["TSPropertySignature", 147], |
| ["TSQualifiedName", 148], |
| ["TSRestType", 149], |
| ["TSSatisfiesExpression", 150], |
| ["TSTemplateLiteralType", 151], |
| ["TSTupleType", 152], |
| ["TSTypeAliasDeclaration", 153], |
| ["TSTypeAnnotation", 154], |
| ["TSTypeAssertion", 155], |
| ["TSTypeLiteral", 156], |
| ["TSTypeOperator", 157], |
| ["TSTypeParameter", 158], |
| ["TSTypeParameterDeclaration", 159], |
| ["TSTypeParameterInstantiation", 160], |
| ["TSTypePredicate", 161], |
| ["TSTypeQuery", 162], |
| ["TSTypeReference", 163], |
| ["TSUnionType", 164] |
| ]); |
| |
| |
| let compiledVisitor; |
| function createCompiledVisitor() { |
| compiledVisitor = []; |
| for (let i = 165; i !== 0; i--) compiledVisitor.push(null); |
| return compiledVisitor; |
| } |
| const mergedLeafVisitorTypeIds = []; |
| const mergedEnterVisitorTypeIds = []; |
| const mergedExitVisitorTypeIds = []; |
| for (let i = 27; i !== 0; i--) mergedLeafVisitorTypeIds.push(0); |
| for (let i = 138; i !== 0; i--) { |
| mergedEnterVisitorTypeIds.push(0); |
| mergedExitVisitorTypeIds.push(0); |
| } |
| mergedLeafVisitorTypeIds.length = 0; |
| mergedEnterVisitorTypeIds.length = 0; |
| mergedExitVisitorTypeIds.length = 0; |
| let hasActiveVisitors = false; |
| const enterExitObjectCache = []; |
| let enterExitObjectCacheNextIndex = 0; |
| function getEnterExitObject() { |
| if (enterExitObjectCacheNextIndex < enterExitObjectCache.length) return enterExitObjectCache[enterExitObjectCacheNextIndex++]; |
| const enterExit = { |
| enter: null, |
| exit: null |
| }; |
| enterExitObjectCache.push(enterExit); |
| enterExitObjectCacheNextIndex++; |
| return enterExit; |
| } |
| const visitFnArrayCache = []; |
| let visitFnArrayCacheNextIndex = 0; |
| function createVisitFnArray(visit1, visit2) { |
| if (visitFnArrayCacheNextIndex < visitFnArrayCache.length) { |
| const arr = visitFnArrayCache[visitFnArrayCacheNextIndex++]; |
| arr.push(visit1, visit2); |
| return arr; |
| } |
| const arr = [visit1, visit2]; |
| visitFnArrayCache.push(arr); |
| visitFnArrayCacheNextIndex++; |
| return arr; |
| } |
| |
| |
| |
| |
| |
| function addVisitorToCompiled(visitor) { |
| if (visitor === null || typeof visitor !== "object") throw new TypeError("Visitor must be an object"); |
| const keys = Object.keys(visitor), keysLen = keys.length; |
| if (keysLen === 0) return; |
| hasActiveVisitors = true; |
| for (let i = 0; i < keysLen; i++) { |
| let name = keys[i]; |
| const visitFn = visitor[name]; |
| if (typeof visitFn !== "function") throw new TypeError(`'${name}' property of visitor object is not a function`); |
| const isExit = name.endsWith(":exit"); |
| if (isExit) name = name.slice(0, -5); |
| const typeId = NODE_TYPE_IDS_MAP.get(name); |
| if (typeId === void 0) throw new Error(`Unknown node type '${name}' in visitor object`); |
| const existing = compiledVisitor[typeId]; |
| if (typeId < 27) if (existing === null) compiledVisitor[typeId] = visitFn; |
| else if (Array.isArray(existing)) if (isExit) existing.push(visitFn); |
| else existing.splice(existing.length - 1, 0, visitFn); |
| else { |
| compiledVisitor[typeId] = isExit ? createVisitFnArray(existing, visitFn) : createVisitFnArray(visitFn, existing); |
| mergedLeafVisitorTypeIds.push(typeId); |
| } |
| else if (existing === null) { |
| const enterExit = compiledVisitor[typeId] = getEnterExitObject(); |
| if (isExit) enterExit.exit = visitFn; |
| else enterExit.enter = visitFn; |
| } else if (isExit) { |
| const { exit } = existing; |
| if (exit === null) existing.exit = visitFn; |
| else if (Array.isArray(exit)) exit.push(visitFn); |
| else { |
| existing.exit = createVisitFnArray(exit, visitFn); |
| mergedExitVisitorTypeIds.push(typeId); |
| } |
| } else { |
| const { enter } = existing; |
| if (enter === null) existing.enter = visitFn; |
| else if (Array.isArray(enter)) enter.push(visitFn); |
| else { |
| existing.enter = createVisitFnArray(enter, visitFn); |
| mergedEnterVisitorTypeIds.push(typeId); |
| } |
| } |
| } |
| } |
| |
| |
| |
| |
| |
| |
| |
| function finalizeCompiledVisitor() { |
| if (hasActiveVisitors === false) return false; |
| for (let i = mergedLeafVisitorTypeIds.length - 1; i >= 0; i--) { |
| const typeId = mergedLeafVisitorTypeIds[i]; |
| compiledVisitor[typeId] = mergeVisitFns(compiledVisitor[typeId]); |
| } |
| for (let i = mergedEnterVisitorTypeIds.length - 1; i >= 0; i--) { |
| const typeId = mergedEnterVisitorTypeIds[i]; |
| const enterExit = compiledVisitor[typeId]; |
| enterExit.enter = mergeVisitFns(enterExit.enter); |
| } |
| for (let i = mergedExitVisitorTypeIds.length - 1; i >= 0; i--) { |
| const typeId = mergedExitVisitorTypeIds[i]; |
| const enterExit = compiledVisitor[typeId]; |
| enterExit.exit = mergeVisitFns(enterExit.exit); |
| } |
| mergedLeafVisitorTypeIds.length = 0; |
| mergedEnterVisitorTypeIds.length = 0; |
| mergedExitVisitorTypeIds.length = 0; |
| visitFnArrayCacheNextIndex = 0; |
| hasActiveVisitors = false; |
| return true; |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| function mergeVisitFns(visitFns) { |
| const numVisitFns = visitFns.length; |
| let merger; |
| if (mergers.length <= numVisitFns) { |
| while (mergers.length < numVisitFns) mergers.push(null); |
| merger = createMerger(numVisitFns); |
| mergers.push(merger); |
| } else { |
| merger = mergers[numVisitFns]; |
| if (merger === null) merger = mergers[numVisitFns] = createMerger(numVisitFns); |
| } |
| const mergedFn = merger(...visitFns); |
| visitFns.length = 0; |
| return mergedFn; |
| } |
| |
| |
| |
| |
| |
| |
| function createMerger(fnCount) { |
| const args = []; |
| let body = "return node=>{"; |
| for (let i = 1; i <= fnCount; i++) { |
| args.push(`visit${i}`); |
| body += `visit${i}(node);`; |
| } |
| body += "}"; |
| args.push(body); |
| return new Function(...args); |
| } |
| const mergers = [ |
| null, |
| null, |
| (visit1, visit2) => (node) => { |
| visit1(node); |
| visit2(node); |
| }, |
| (visit1, visit2, visit3) => (node) => { |
| visit1(node); |
| visit2(node); |
| visit3(node); |
| }, |
| (visit1, visit2, visit3, visit4) => (node) => { |
| visit1(node); |
| visit2(node); |
| visit3(node); |
| visit4(node); |
| }, |
| (visit1, visit2, visit3, visit4, visit5) => (node) => { |
| visit1(node); |
| visit2(node); |
| visit3(node); |
| visit4(node); |
| visit5(node); |
| } |
| ]; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| var Visitor = class { |
| #compiledVisitor = null; |
| constructor(visitor) { |
| const compiledVisitor = createCompiledVisitor(); |
| addVisitorToCompiled(visitor); |
| if (finalizeCompiledVisitor()) this.#compiledVisitor = compiledVisitor; |
| } |
| visit(program) { |
| const compiledVisitor = this.#compiledVisitor; |
| if (compiledVisitor !== null) walkProgram(program, compiledVisitor); |
| } |
| }; |
| |
| export { TsconfigCache, Visitor, minify, minifySync, parse, parseSync, transform, transformSync }; |
|
|