Files
mermaid-live-editor/src/lib/util/mermaid.ts
T
2024-08-28 17:43:37 +05:30

24 lines
667 B
TypeScript

import elkLayouts from '@mermaid-js/layout-elk';
import zenuml from '@mermaid-js/mermaid-zenuml';
import type { MermaidConfig, RenderResult } from 'mermaid';
import mermaid from 'mermaid';
mermaid.registerLayoutLoaders(elkLayouts);
const init = mermaid.registerExternalDiagrams([zenuml]);
export const render = async (
config: MermaidConfig,
code: string,
id: string
): Promise<RenderResult> => {
await init;
// Should be able to call this multiple times without any issues.
mermaid.initialize(config);
return await mermaid.render(id, code);
};
export const parse = async (code: string): Promise<unknown> => {
return await mermaid.parse(code);
};