UNPKG

quilon

Version:

Generate ERDs from your entity files automagically

49 lines (48 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Builder = void 0; const config_1 = require("../global/config"); const types_1 = require("../global/types"); const filesystem_1 = require("../utils/filesystem"); const Mermaid_1 = require("./mermaid/Mermaid"); class Builder { constructor() { const configFile = filesystem_1.FileSystemUtils.readAndParseJSONFile(config_1.GlobalConfig.CONFIG_PATH); const { diagramLanguage } = configFile; this.diagramLanguage = diagramLanguage; this.builder = this.getBuilder(); this.fileExtension = this.builder.fileExtension; } /** * Generates and returns the diagram as a string. * * @returns {string} The generated diagram. */ getDiagram() { return this.builder.getDiagram(); } /** * Appends an entity to the current diagram. * * @param {IEntityData} entity - The entity data to be added to the diagram. */ appendEntity(entity) { this.builder.appendEntity(entity); } /** * Selects and returns the appropriate builder instance based on the configured diagram language. * * @private * @returns {IBuilder} The builder instance for the specified diagram language. * @throws {Error} If there is no builder implemented for the specified diagram language. */ getBuilder() { switch (this.diagramLanguage) { case types_1.DiagramLanguages.Mermaid: return new Mermaid_1.MermaidBuilder(); default: throw new Error(`No Builder for Diagram Language ${this.diagramLanguage} implemented.`); } } } exports.Builder = Builder;