UNPKG

pg-mermaid

Version:

Mermaid diagram generator for PostgreSQL database schema

38 lines 1.39 kB
"use strict"; 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