UNPKG

@jqassistant/ts-lce

Version:

Tool to extract language concepts from a TypeScript codebase and export them to a JSON file.

45 lines (44 loc) 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExportAssignmentTraverser = exports.ExportDefaultDeclarationTraverser = exports.ExportNamedDeclarationTraverser = void 0; const utils_1 = require("@typescript-eslint/utils"); const concept_1 = require("../concept"); const traverser_1 = require("../traverser"); const traverser_utils_1 = require("../utils/traverser.utils"); class ExportNamedDeclarationTraverser extends traverser_1.Traverser { static DECLARATION_PROP = "declaration"; traverseChildren(processingContext, processors) { const { node } = processingContext; const conceptMaps = []; if (node.type === utils_1.AST_NODE_TYPES.ExportNamedDeclaration) { if (node.declaration) (0, traverser_utils_1.runTraverserForNode)(node.declaration, { parentPropName: ExportNamedDeclarationTraverser.DECLARATION_PROP }, processingContext, processors, conceptMaps); } return (0, concept_1.mergeConceptMaps)(...conceptMaps); } } exports.ExportNamedDeclarationTraverser = ExportNamedDeclarationTraverser; class ExportDefaultDeclarationTraverser extends traverser_1.Traverser { static DECLARATION_PROP = "declaration"; traverseChildren(processingContext, processors) { const { node } = processingContext; const conceptMaps = []; if (node.type === utils_1.AST_NODE_TYPES.ExportDefaultDeclaration) { (0, traverser_utils_1.runTraverserForNode)(node.declaration, { parentPropName: ExportDefaultDeclarationTraverser.DECLARATION_PROP }, processingContext, processors, conceptMaps); } return (0, concept_1.mergeConceptMaps)(...conceptMaps); } } exports.ExportDefaultDeclarationTraverser = ExportDefaultDeclarationTraverser; class ExportAssignmentTraverser extends traverser_1.Traverser { static EXPRESSION_PROP = "expression"; traverseChildren(processingContext, processors) { const { node } = processingContext; const conceptMaps = []; if (node.type === utils_1.AST_NODE_TYPES.TSExportAssignment) { (0, traverser_utils_1.runTraverserForNode)(node.expression, { parentPropName: ExportAssignmentTraverser.EXPRESSION_PROP }, processingContext, processors, conceptMaps); } return (0, concept_1.mergeConceptMaps)(...conceptMaps); } } exports.ExportAssignmentTraverser = ExportAssignmentTraverser;