UNPKG

ngrx-uml

Version:
56 lines (55 loc) 2.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Converter = void 0; const chalk_1 = __importDefault(require("chalk")); const loglevel_1 = __importDefault(require("loglevel")); const default_converter_1 = require("../../impl/converters/node-converters/default.converter"); class Converter { constructor() { this.converters = {}; this.defaultConverter = new default_converter_1.DefaultConverter(); } registerConverters(converters, { replace = false }) { this.converters = replace ? converters : Object.assign(Object.assign({}, this.converters), converters); } convert(context, program) { for (const sourceFile of program.getSourceFiles()) { if (sourceFile.isDeclarationFile) { continue; } loglevel_1.default.trace('convert file:', chalk_1.default.cyan(sourceFile.fileName)); sourceFile.forEachChild((node) => this.convertRecursive(context, node)); } context.finish(); return context.getResult(); } convertNode(context, node, withDefault = false) { const nodeConverters = this.converters[node.kind]; if (nodeConverters) { for (const converter of nodeConverters) { const convertResult = converter.convert(context, node); if (convertResult) { return convertResult; } } } else if (withDefault) { return this.defaultConverter.convert(context, node); } return; } convertRecursive(context, node) { if (!this.nodeFilter || this.nodeFilter(node)) { if (this.convertNode(context, node)) { return; } } node.forEachChild(child => { this.convertRecursive(context, child); }); } } exports.Converter = Converter;