UNPKG

@jqassistant/ts-lce

Version:

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

27 lines (26 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AstTraverser = void 0; const concept_1 = require("../concept"); const context_1 = require("../context"); const features_1 = require("../features"); const traverser_1 = require("../traverser"); const traverser_utils_1 = require("../utils/traverser.utils"); class AstTraverser { /** optimized data structure for retrieving all processor for a specific AST node type */ processorMap; constructor() { this.processorMap = (0, traverser_1.createProcessorMap)(features_1.PROCESSORS); } traverse(globalContext) { const conceptMaps = []; (0, traverser_utils_1.runTraverserForNode)(globalContext.ast, { parentPropName: "ast" }, { globalContext: globalContext, localContexts: new context_1.LocalContexts(), node: globalContext.ast, metadataAssignments: [], }, this.processorMap, conceptMaps); return (0, concept_1.mergeConceptMaps)(...conceptMaps); } } exports.AstTraverser = AstTraverser;