refactor(mermaid): use webpack import for mermaid-elk

This commit is contained in:
Elian Doran 2025-01-17 19:29:20 +02:00
parent af1d6540bc
commit 0cee8f9f20
No known key found for this signature in database
7 changed files with 3 additions and 62 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,13 +0,0 @@
{
"name": "mermaid-elk",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "mermaid-elk",
"version": "1.0.0",
"license": "ISC"
}
}
}

View File

@ -1,13 +0,0 @@
{
"name": "mermaid-elk",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"build": "tsx ../../node_modules/webpack/bin/webpack.js -c webpack.config.cjs"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {}
}

View File

@ -1,19 +0,0 @@
const path = require("path");
const webpack = require("webpack");
module.exports = {
mode: "production",
entry: "../../node_modules/@mermaid-js/layout-elk/dist/mermaid-layout-elk.esm.min.mjs",
output: {
library: "MERMAID_ELK",
filename: "elk.min.js",
path: path.resolve(__dirname),
libraryTarget: "umd",
libraryExport: "default"
},
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1
})
]
}

View File

@ -76,14 +76,6 @@ const MERMAID: Library = {
js: ["node_modules/mermaid/dist/mermaid.min.js"] js: ["node_modules/mermaid/dist/mermaid.min.js"]
}; };
/**
* The ELK extension of Mermaid.js, which supports more advanced layouts.
* See https://www.npmjs.com/package/@mermaid-js/layout-elk for more information.
*/
const MERMAID_ELK: Library = {
js: ["libraries/mermaid-elk/elk.min.js"]
};
const EXCALIDRAW: Library = { const EXCALIDRAW: Library = {
js: ["node_modules/react/umd/react.production.min.js", "node_modules/react-dom/umd/react-dom.production.min.js", "node_modules/@excalidraw/excalidraw/dist/excalidraw.production.min.js"] js: ["node_modules/react/umd/react.production.min.js", "node_modules/react-dom/umd/react-dom.production.min.js", "node_modules/@excalidraw/excalidraw/dist/excalidraw.production.min.js"]
}; };
@ -211,7 +203,6 @@ export default {
WHEEL_ZOOM, WHEEL_ZOOM,
FORCE_GRAPH, FORCE_GRAPH,
MERMAID, MERMAID,
MERMAID_ELK,
EXCALIDRAW, EXCALIDRAW,
MARKJS, MARKJS,
I18NEXT, I18NEXT,

View File

@ -1,5 +1,3 @@
import library_loader from "./library_loader.js";
let elkLoaded = false; let elkLoaded = false;
/** /**
@ -22,7 +20,6 @@ export async function loadElkIfNeeded(mermaidContent: string) {
}); });
if (parsedContent?.config?.layout === "elk") { if (parsedContent?.config?.layout === "elk") {
elkLoaded = true; elkLoaded = true;
await library_loader.requireLibrary(library_loader.MERMAID_ELK); mermaid.registerLayoutLoaders((await import("@mermaid-js/layout-elk")).default);
mermaid.registerLayoutLoaders(MERMAID_ELK);
} }
} }

View File

@ -155,13 +155,12 @@ declare global {
registerLayoutLoaders(loader: MermaidLoader); registerLayoutLoaders(loader: MermaidLoader);
parse(content: string, opts: { parse(content: string, opts: {
suppressErrors: true suppressErrors: true
}): { }): Promise<{
config: { config: {
layout: string; layout: string;
} }
} }>
}; };
var MERMAID_ELK: MermaidLoader;
var CKEditor: { var CKEditor: {
BalloonEditor: { BalloonEditor: {