24 lines
667 B
TypeScript
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);
|
|
};
|