@jqassistant/ts-lce
Version:
Tool to extract language concepts from a TypeScript codebase and export them to a JSON file.
203 lines (202 loc) • 16.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PROCESSORS = exports.POST_PROCESSORS = exports.TRAVERSERS = void 0;
const utils_1 = require("@typescript-eslint/utils");
const class_declaration_processor_1 = require("./processors/class-declaration.processor");
const class_like_declaration_processor_1 = require("./processors/class-like-declaration.processor");
const decorator_processor_1 = require("./processors/decorator.processor");
const dependency_resolution_processor_1 = require("./processors/dependency-resolution.processor");
const enum_declaration_processor_1 = require("./processors/enum-declaration.processor");
const export_declaration_processor_1 = require("./processors/export-declaration.processor");
const function_declaration_processor_1 = require("./processors/function-declaration.processor");
const import_declaration_processor_1 = require("./processors/import-declaration.processor");
const instructional_code_processor_1 = require("./processors/instructional-code.processor");
const interface_declaration_processor_1 = require("./processors/interface-declaration.processor");
const type_alias_declaration_processor_1 = require("./processors/type-alias-declaration.processor");
const value_processor_1 = require("./processors/value.processor");
const variable_declaration_processor_1 = require("./processors/variable-declaration.processor");
const traverser_1 = require("./traverser");
const class_traverser_1 = require("./traversers/class.traverser");
const decorator_traverser_1 = require("./traversers/decorator.traverser");
const enum_traverser_1 = require("./traversers/enum.traverser");
const export_declaration_traverser_1 = require("./traversers/export-declaration.traverser");
const expression_traverser_1 = require("./traversers/expression.traverser");
const function_traverser_1 = require("./traversers/function.traverser");
const interface_declaration_traverser_1 = require("./traversers/interface-declaration.traverser");
const method_traverser_1 = require("./traversers/method.traverser");
const program_traverser_1 = require("./traversers/program.traverser");
const property_traverser_1 = require("./traversers/property.traverser");
const statement_traverser_1 = require("./traversers/statement.traverser");
const type_alias_declaration_traverser_1 = require("./traversers/type-alias-declaration.traverser");
const type_parameter_traverser_1 = require("./traversers/type-parameter.traverser");
const variable_declaration_traverser_1 = require("./traversers/variable-declaration.traverser");
const typescript_module_processor_1 = require("./processors/typescript-module.processor");
const external_dependencies_post_processor_1 = require("./post-processors/external-dependencies.post-processor");
const jsx_traverser_1 = require("./traversers/jsx.traverser");
const exports_post_processor_1 = require("./post-processors/exports.post-processor");
const type_traverser_1 = require("./traversers/type.traverser");
const type_annotation_processor_1 = require("./processors/type-annotation.processor");
/**
* Central index of all traversers natively supported by the LCE.
* Maps AST node types to their corresponding traverser.
*/
exports.TRAVERSERS = new Map([
[utils_1.AST_NODE_TYPES.AccessorProperty, new property_traverser_1.AccessorPropertyTraverser()],
[utils_1.AST_NODE_TYPES.ArrayExpression, new expression_traverser_1.ArrayExpressionTraverser()],
[utils_1.AST_NODE_TYPES.ArrayPattern, new expression_traverser_1.ArrayPatternTraverser()],
[utils_1.AST_NODE_TYPES.ArrowFunctionExpression, new expression_traverser_1.ArrowFunctionExpressionTraverser()],
[utils_1.AST_NODE_TYPES.AssignmentExpression, new expression_traverser_1.AssignmentExpressionTraverser()],
[utils_1.AST_NODE_TYPES.AwaitExpression, new expression_traverser_1.AwaitExpressionTraverser()],
[utils_1.AST_NODE_TYPES.BinaryExpression, new expression_traverser_1.BinaryExpressionTraverser()],
[utils_1.AST_NODE_TYPES.BlockStatement, new statement_traverser_1.BlockStatementTraverser()],
[utils_1.AST_NODE_TYPES.CallExpression, new expression_traverser_1.CallExpressionTraverser()],
[utils_1.AST_NODE_TYPES.ChainExpression, new expression_traverser_1.ChainExpressionTraverser()],
[utils_1.AST_NODE_TYPES.ClassBody, new class_traverser_1.ClassBodyTraverser()],
[utils_1.AST_NODE_TYPES.ClassDeclaration, new class_traverser_1.ClassTraverser()],
[utils_1.AST_NODE_TYPES.ClassExpression, new class_traverser_1.ClassTraverser()],
[utils_1.AST_NODE_TYPES.ConditionalExpression, new expression_traverser_1.ConditionalExpressionTraverser()],
[utils_1.AST_NODE_TYPES.Decorator, new decorator_traverser_1.DecoratorTraverser()],
[utils_1.AST_NODE_TYPES.DoWhileStatement, new statement_traverser_1.DoWhileStatementTraverser()],
[utils_1.AST_NODE_TYPES.ExportAllDeclaration, new traverser_1.SimpleTraverser()],
[utils_1.AST_NODE_TYPES.ExportDefaultDeclaration, new export_declaration_traverser_1.ExportDefaultDeclarationTraverser()],
[utils_1.AST_NODE_TYPES.ExportNamedDeclaration, new export_declaration_traverser_1.ExportNamedDeclarationTraverser()],
[utils_1.AST_NODE_TYPES.ExpressionStatement, new statement_traverser_1.ExpressionStatementTraverser()],
[utils_1.AST_NODE_TYPES.ForInStatement, new statement_traverser_1.ForInStatementTraverser()],
[utils_1.AST_NODE_TYPES.ForOfStatement, new statement_traverser_1.ForOfStatementTraverser()],
[utils_1.AST_NODE_TYPES.ForStatement, new statement_traverser_1.ForStatementTraverser()],
[utils_1.AST_NODE_TYPES.FunctionDeclaration, new function_traverser_1.FunctionTraverser()],
[utils_1.AST_NODE_TYPES.FunctionExpression, new function_traverser_1.FunctionTraverser()],
[utils_1.AST_NODE_TYPES.Identifier, new expression_traverser_1.IdentifierTraverser()],
[utils_1.AST_NODE_TYPES.IfStatement, new statement_traverser_1.IfStatementTraverser()],
[utils_1.AST_NODE_TYPES.ImportDeclaration, new traverser_1.SimpleTraverser()],
[utils_1.AST_NODE_TYPES.ImportExpression, new expression_traverser_1.ImportExpressionTraverser()],
[utils_1.AST_NODE_TYPES.JSXElement, new jsx_traverser_1.JSXElementTraverser()],
[utils_1.AST_NODE_TYPES.JSXEmptyExpression, new traverser_1.SimpleTraverser()],
[utils_1.AST_NODE_TYPES.JSXOpeningElement, new jsx_traverser_1.JSXOpeningElementTraverser()],
[utils_1.AST_NODE_TYPES.JSXAttribute, new jsx_traverser_1.JSXAttributeTraverser()],
[utils_1.AST_NODE_TYPES.JSXFragment, new jsx_traverser_1.JSXFragmentTraverser()],
[utils_1.AST_NODE_TYPES.JSXSpreadAttribute, new jsx_traverser_1.JSXSpreadAttributeTraverser()],
[utils_1.AST_NODE_TYPES.JSXSpreadChild, new jsx_traverser_1.JSXSpreadChildTraverser()],
[utils_1.AST_NODE_TYPES.JSXExpressionContainer, new jsx_traverser_1.JSXExpressionContainerTraverser()],
[utils_1.AST_NODE_TYPES.LabeledStatement, new statement_traverser_1.LabeledStatementTraverser()],
[utils_1.AST_NODE_TYPES.Literal, new traverser_1.SimpleTraverser()],
[utils_1.AST_NODE_TYPES.LogicalExpression, new expression_traverser_1.LogicalExpressionTraverser()],
[utils_1.AST_NODE_TYPES.MemberExpression, new expression_traverser_1.MemberExpressionTraverser()],
[utils_1.AST_NODE_TYPES.MethodDefinition, new method_traverser_1.MethodTraverser()],
[utils_1.AST_NODE_TYPES.NewExpression, new expression_traverser_1.NewExpressionTraverser()],
[utils_1.AST_NODE_TYPES.ObjectExpression, new expression_traverser_1.ObjectExpressionTraverser()],
[utils_1.AST_NODE_TYPES.ObjectPattern, new expression_traverser_1.ObjectPatternTraverser()],
[utils_1.AST_NODE_TYPES.Program, new program_traverser_1.ProgramTraverser()],
[utils_1.AST_NODE_TYPES.Property, new property_traverser_1.PropertyTraverser()],
[utils_1.AST_NODE_TYPES.PropertyDefinition, new property_traverser_1.PropertyTraverser()],
[utils_1.AST_NODE_TYPES.ReturnStatement, new statement_traverser_1.ReturnStatementTraverser()],
[utils_1.AST_NODE_TYPES.SequenceExpression, new expression_traverser_1.SequenceExpressionTraverser()],
[utils_1.AST_NODE_TYPES.SpreadElement, new expression_traverser_1.SpreadElementTraverser()],
[utils_1.AST_NODE_TYPES.StaticBlock, new class_traverser_1.StaticBlockTraverser()],
[utils_1.AST_NODE_TYPES.SwitchCase, new statement_traverser_1.SwitchCaseTraverser()],
[utils_1.AST_NODE_TYPES.SwitchStatement, new statement_traverser_1.SwitchStatementTraverser()],
[utils_1.AST_NODE_TYPES.TaggedTemplateExpression, new expression_traverser_1.TaggedTemplateExpressionTraverser()],
[utils_1.AST_NODE_TYPES.TemplateElement, new traverser_1.SimpleTraverser()],
[utils_1.AST_NODE_TYPES.TemplateLiteral, new expression_traverser_1.TemplateLiteralTraverser()],
[utils_1.AST_NODE_TYPES.ThrowStatement, new statement_traverser_1.ThrowStatementTraverser()],
[utils_1.AST_NODE_TYPES.TryStatement, new statement_traverser_1.TryStatementTraverser()],
[utils_1.AST_NODE_TYPES.TSAbstractAccessorProperty, new property_traverser_1.AccessorPropertyTraverser()],
[utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition, new method_traverser_1.MethodTraverser()],
[utils_1.AST_NODE_TYPES.TSAbstractPropertyDefinition, new property_traverser_1.PropertyTraverser()],
[utils_1.AST_NODE_TYPES.TSArrayType, new type_traverser_1.ArrayTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSAsExpression, new expression_traverser_1.AsExpressionTraverser()],
[utils_1.AST_NODE_TYPES.TSClassImplements, new traverser_1.SimpleTraverser()],
[utils_1.AST_NODE_TYPES.TSConditionalType, new type_traverser_1.ConditionalTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSConstructorType, new type_traverser_1.ConstructorTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSDeclareFunction, new function_traverser_1.FunctionTraverser()],
[utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression, new function_traverser_1.FunctionTraverser()],
[utils_1.AST_NODE_TYPES.TSEnumBody, new enum_traverser_1.EnumBodyTraverser()],
[utils_1.AST_NODE_TYPES.TSEnumDeclaration, new enum_traverser_1.EnumDeclarationTraverser()],
[utils_1.AST_NODE_TYPES.TSEnumMember, new enum_traverser_1.EnumMemberTraverser()],
[utils_1.AST_NODE_TYPES.TSFunctionType, new type_traverser_1.FunctionTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSExportAssignment, new export_declaration_traverser_1.ExportAssignmentTraverser()],
[utils_1.AST_NODE_TYPES.TSImportType, new type_traverser_1.ImportTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSIndexedAccessType, new type_traverser_1.IndexedAccessTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSInferType, new type_traverser_1.InferTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSInterfaceBody, new interface_declaration_traverser_1.InterfaceBodyTraverser()],
[utils_1.AST_NODE_TYPES.TSInterfaceDeclaration, new interface_declaration_traverser_1.InterfaceDeclarationTraverser()],
[utils_1.AST_NODE_TYPES.TSInterfaceHeritage, new interface_declaration_traverser_1.InterfaceHeritageTraverser()],
[utils_1.AST_NODE_TYPES.TSIntersectionType, new type_traverser_1.IntersectionTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSLiteralType, new type_traverser_1.LiteralTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSMappedType, new type_traverser_1.MappedTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSMethodSignature, new method_traverser_1.MethodTraverser()],
[utils_1.AST_NODE_TYPES.TSNamedTupleMember, new type_traverser_1.NamedTupleMemberTraverser()],
[utils_1.AST_NODE_TYPES.TSNonNullExpression, new expression_traverser_1.NonNullExpressionTraverser()],
[utils_1.AST_NODE_TYPES.TSOptionalType, new type_traverser_1.OptionalTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSParameterProperty, new method_traverser_1.ParameterPropertyTraverser()],
[utils_1.AST_NODE_TYPES.TSPropertySignature, new property_traverser_1.PropertyTraverser()],
[utils_1.AST_NODE_TYPES.TSQualifiedName, new type_traverser_1.QualifiedNameTraverser()],
[utils_1.AST_NODE_TYPES.TSRestType, new type_traverser_1.RestTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSTemplateLiteralType, new type_traverser_1.TemplateLiteralTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSTupleType, new type_traverser_1.TupleTypeTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration, new type_alias_declaration_traverser_1.TypeAliasDeclarationTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeAnnotation, new type_traverser_1.TypeAnnotationTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeAssertion, new expression_traverser_1.TypeAssertionTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeLiteral, new type_traverser_1.TypeLiteralTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeOperator, new type_traverser_1.TypeOperatorTraverser()],
[utils_1.AST_NODE_TYPES.TSTypePredicate, new type_traverser_1.TypePredicateTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeParameter, new type_parameter_traverser_1.TypeParameterTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeParameterDeclaration, new type_parameter_traverser_1.TypeParameterDeclarationTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation, new type_parameter_traverser_1.TypeParameterInstantiationTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeQuery, new type_traverser_1.TypeQueryTraverser()],
[utils_1.AST_NODE_TYPES.TSTypeReference, new type_traverser_1.TypeReferenceTraverser()],
[utils_1.AST_NODE_TYPES.TSUnionType, new type_traverser_1.UnionTypeTraverser()],
[utils_1.AST_NODE_TYPES.UnaryExpression, new expression_traverser_1.UnaryExpressionTraverser()],
[utils_1.AST_NODE_TYPES.UpdateExpression, new expression_traverser_1.UpdateExpressionTraverser()],
[utils_1.AST_NODE_TYPES.VariableDeclaration, new variable_declaration_traverser_1.VariableDeclarationTraverser()],
[utils_1.AST_NODE_TYPES.VariableDeclarator, new variable_declaration_traverser_1.VariableDeclaratorTraverser()],
[utils_1.AST_NODE_TYPES.WhileStatement, new statement_traverser_1.WhileStatementTraverser()],
[utils_1.AST_NODE_TYPES.WithStatement, new statement_traverser_1.WithStatementTraverser()],
[utils_1.AST_NODE_TYPES.YieldExpression, new expression_traverser_1.YieldExpressionTraverser()],
]);
exports.POST_PROCESSORS = [
new external_dependencies_post_processor_1.ExternalDependenciesPostProcessor(),
new exports_post_processor_1.ExportsPostProcessor(),
];
/**
* Central index of all processors provided natively by the LCE.
*/
exports.PROCESSORS = [
new value_processor_1.ArrayValueProcessor(),
new class_like_declaration_processor_1.AutoAccessorDeclarationProcessor(),
new value_processor_1.CallValueProcessor(),
new class_declaration_processor_1.ClassDeclarationProcessor(),
new value_processor_1.ClassValueProcessor(),
new value_processor_1.ComplexValueProcessor(),
new instructional_code_processor_1.DeclarationScopeProcessor(),
new decorator_processor_1.DecoratorProcessor(),
new dependency_resolution_processor_1.DependencyResolutionProcessor(),
new enum_declaration_processor_1.EnumDeclarationProcessor(),
new enum_declaration_processor_1.EnumMemberProcessor(),
new export_declaration_processor_1.ExportDeclarationProcessor(),
new function_declaration_processor_1.FunctionDeclarationProcessor(),
new function_declaration_processor_1.FunctionParameterProcessor(),
new value_processor_1.FunctionValueProcessor(),
new instructional_code_processor_1.IdentifierDependencyProcessor(),
new value_processor_1.IdentifierValueProcessor(),
new class_declaration_processor_1.ImplementsDeclarationProcessor(),
new import_declaration_processor_1.ImportDeclarationProcessor(),
new type_annotation_processor_1.IndexedAccessTypeProcessor(),
new type_annotation_processor_1.IndexedAccessTypeCleanupProcessor(),
new interface_declaration_processor_1.InterfaceDeclarationProcessor(),
new value_processor_1.LiteralValueProcessor(),
new instructional_code_processor_1.MemberExpressionDependencyProcessor(),
new value_processor_1.MemberValueProcessor(),
new class_like_declaration_processor_1.MethodParameterProcessor(),
new class_like_declaration_processor_1.MethodProcessor(),
new typescript_module_processor_1.ModuleProcessor(),
new value_processor_1.ObjectValueProcessor(),
new value_processor_1.ObjectValuePropertyProcessor(),
new class_like_declaration_processor_1.PropertyProcessor(),
new instructional_code_processor_1.ScopeProcessor(),
new class_declaration_processor_1.SuperClassDeclarationProcessor(),
new interface_declaration_processor_1.SuperInterfaceDeclarationProcessor(),
new type_alias_declaration_processor_1.TypeAliasDeclarationProcessor(),
new variable_declaration_processor_1.VariableDeclarationProcessor(),
new variable_declaration_processor_1.VariableDeclaratorProcessor(),
];