pg-mermaid
Version:
Mermaid diagram generator for PostgreSQL database schema
38 lines • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateDiagram = void 0;
const generateEntity = (entity) => {
const mermaid = [` ${entity.name} {`];
for (const attribute of entity.attributes) {
const { comment, key, name, type } = attribute;
mermaid.push(` ${name} ${type}${key ? ` ${key} ` : ' '}"${comment}"`);
}
mermaid.push(' }');
return mermaid.join('\n');
};
const generateEntities = (entities) => {
const mermaid = [];
for (const entity of entities) {
mermaid.push(generateEntity(entity));
}
return mermaid.join('\n\n');
};
const generateRelationships = (relationships) => {
const mermaid = [];
for (const { child, parent } of relationships) {
mermaid.push(` ${parent.entity} ||--o{ ${child.entity} : "${child.entity}(${child.attributes.join(', ')}) -> ${parent.entity}(${parent.attributes.join(', ')})"`);
}
return mermaid.join('\n');
};
const generateDiagram = ({ entities = [], relationships = [], }) => {
const diagram = ['erDiagram'];
if (entities.length > 0) {
diagram.push(generateEntities(entities));
}
if (relationships.length > 0) {
diagram.push(generateRelationships(relationships));
}
return diagram.join('\n\n');
};
exports.generateDiagram = generateDiagram;
//# sourceMappingURL=mermaid.js.map