@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
JavaScript
;
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;