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