diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index a03d56914..d29f0f675 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -48,6 +48,7 @@ export const setLogLevel = function (level: keyof typeof LEVELS | number | strin log.warn = () => {}; log.error = () => {}; log.fatal = () => {}; + if (numericLevel <= LEVELS.fatal) { log.fatal = console.error ? console.error.bind(console, format('FATAL'), 'color: orange') diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 7a280fa31..a630016dc 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -159,7 +159,7 @@ const initThrowsErrors = function ( } }; -let lazyLoadingPromise: Promise | undefined; +let lazyLoadingPromise: Promise | undefined = undefined; /** * @param conf * @deprecated This is an internal function and should not be used. Will be removed in v10. @@ -179,12 +179,15 @@ const registerLazyLoadedDiagrams = async (conf: MermaidConfig) => { await lazyLoadingPromise; }; +let loadingPromise: Promise | undefined = undefined; + const loadExternalDiagrams = async (conf: MermaidConfig) => { // Only lazy load once // TODO: This is a hack. We should either throw error when new diagrams are added, or load them anyway. - if (lazyLoadingPromise === undefined) { + if (loadingPromise === undefined) { + log.debug(`Loading ${conf?.lazyLoadedDiagrams?.length} external diagrams`); // Load all lazy loaded diagrams in parallel - lazyLoadingPromise = Promise.allSettled( + loadingPromise = Promise.allSettled( (conf?.lazyLoadedDiagrams ?? []).map(async (url: string) => { const { id, detector, loadDiagram } = await import(url); const { diagram } = await loadDiagram(); @@ -192,7 +195,7 @@ const loadExternalDiagrams = async (conf: MermaidConfig) => { }) ); } - await lazyLoadingPromise; + await loadingPromise; }; /**