quilon
Version:
Generate ERDs from your entity files automagically
49 lines (48 loc) • 1.72 kB
JavaScript
;
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;