UNPKG

ngrx-uml

Version:
38 lines (37 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.printAst = exports.printAstRecursiveFrom = void 0; const chalk_1 = __importDefault(require("chalk")); const fs_1 = require("fs"); const loglevel_1 = __importDefault(require("loglevel")); const os_1 = require("os"); const typescript_1 = __importDefault(require("typescript")); const glob_1 = require("../utils/glob"); function printAstRecursiveFrom(node, sourceFile, indentLevel, lines) { if (!typescript_1.default.isSourceFile(node)) { const indentation = ' '.repeat(indentLevel); const syntaxKind = typescript_1.default.SyntaxKind[node.kind]; const nodeText = node.getText(sourceFile); lines.push(`${indentation}${chalk_1.default.yellow(syntaxKind)}: ${nodeText}`); } node.forEachChild(child => printAstRecursiveFrom(child, sourceFile, indentLevel + 1, lines)); } exports.printAstRecursiveFrom = printAstRecursiveFrom; function iterateFiles(fileNames) { fileNames.forEach(fileName => { loglevel_1.default.info('File:', fileName); const sourceFile = typescript_1.default.createSourceFile(fileName, fs_1.readFileSync(fileName).toString(), typescript_1.default.ScriptTarget.ES2015); loglevel_1.default.info(chalk_1.default.blue('FILE: ', fileName)); const lines = []; printAstRecursiveFrom(sourceFile, sourceFile, 0, lines); loglevel_1.default.info(lines.join(os_1.EOL)); }); } exports.printAst = (source) => { loglevel_1.default.info('printAst', source); const files = glob_1.globSync(source, {}); iterateFiles(files); };