Skip to main content

src/fishgirl_ffi.mjs

import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@11.15.0/+esm";
import { Result$Ok, Result$Error } from "../prelude.mjs";

export function init() {
	mermaid.initialize({ startOnLoad: false });
}

export async function renderMermaid(source, id) {
	try {
		const { svg } = await mermaid.render(id, source);
		return Result$Ok(svg);
	} catch (err) {
		// console.error(err);
		let element = document.querySelector("div#d" + id);
		const errv = element.innerHTML; // And this is a whole SVG we will discard for now.
		element.remove();
		return Result$Error(err);
	}
}