UNPKG

@jqassistant/ts-lce

Version:

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

40 lines (39 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VariableDeclaratorTraverser = exports.VariableDeclarationTraverser = 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 VariableDeclarationTraverser extends traverser_1.Traverser { static DECLARATIONS_PROP = "declarations"; traverseChildren(processingContext, processors) { const { node } = processingContext; const conceptMaps = []; if (node.type === utils_1.AST_NODE_TYPES.VariableDeclaration) { (0, traverser_utils_1.runTraverserForNodes)(node.declarations, { parentPropName: VariableDeclarationTraverser.DECLARATIONS_PROP, }, processingContext, processors, conceptMaps); } return (0, concept_1.mergeConceptMaps)(...conceptMaps); } } exports.VariableDeclarationTraverser = VariableDeclarationTraverser; class VariableDeclaratorTraverser extends traverser_1.Traverser { static DECORATORS_PROP = "decorators"; static INIT_PROP = "init"; traverseChildren(processingContext, processors) { const { node } = processingContext; const conceptMaps = []; if (node.type === utils_1.AST_NODE_TYPES.VariableDeclarator) { if (node.id.decorators) (0, traverser_utils_1.runTraverserForNodes)(node.id.decorators, { parentPropName: VariableDeclaratorTraverser.DECORATORS_PROP, }, processingContext, processors, conceptMaps); if (node.init) (0, traverser_utils_1.runTraverserForNode)(node.init, { parentPropName: VariableDeclaratorTraverser.INIT_PROP }, processingContext, processors, conceptMaps); } return (0, concept_1.mergeConceptMaps)(...conceptMaps); } } exports.VariableDeclaratorTraverser = VariableDeclaratorTraverser;