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