From d6db0b039654f6e122c6098821bc75f2910915e3 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Wed, 28 Jan 2026 14:21:07 +0100 Subject: [PATCH 1/2] Export the icon loader types We want to use `SyncIconLoader` in `mermaid-isomorphic`. See https://github.com/remcohaszing/mermaid-isomorphic/pull/21 --- .changeset/eight-jobs-sing.md | 5 +++++ packages/mermaid/src/mermaid.ts | 4 ++++ packages/mermaid/src/rendering-util/icons.ts | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 .changeset/eight-jobs-sing.md diff --git a/.changeset/eight-jobs-sing.md b/.changeset/eight-jobs-sing.md new file mode 100644 index 00000000000..f6202cb9cce --- /dev/null +++ b/.changeset/eight-jobs-sing.md @@ -0,0 +1,5 @@ +--- +'mermaid': minor +--- + +feat: Export the `AsyncIconLoader`, `SyncIconLoader`, and `IconLoader` types. diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index 46e7cac6365..3e6f5650688 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -2,6 +2,7 @@ * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid * functionality and to render the diagrams to svg code! */ +import type { AsyncIconLoader, IconLoader, SyncIconLoader } from './rendering-util/icons.js'; import { registerIconPacks } from './rendering-util/icons.js'; import { dedent } from 'ts-dedent'; import type { MermaidConfig } from './config.type.js'; @@ -22,8 +23,10 @@ import type { DetailedError } from './utils.js'; import utils, { isDetailedError } from './utils.js'; export type { + AsyncIconLoader, DetailedError, ExternalDiagramDefinition, + IconLoader, InternalHelpers, LayoutData, LayoutLoaderDefinition, @@ -35,6 +38,7 @@ export type { RenderResult, SVG, SVGGroup, + SyncIconLoader, UnknownDiagramError, }; diff --git a/packages/mermaid/src/rendering-util/icons.ts b/packages/mermaid/src/rendering-util/icons.ts index 65f35bc62b0..d63105687be 100644 --- a/packages/mermaid/src/rendering-util/icons.ts +++ b/packages/mermaid/src/rendering-util/icons.ts @@ -5,12 +5,12 @@ import { getConfig } from '../config.js'; import { sanitizeText } from '../diagrams/common/common.js'; import { log } from '../logger.js'; -interface AsyncIconLoader { +export interface AsyncIconLoader { name: string; loader: () => Promise; } -interface SyncIconLoader { +export interface SyncIconLoader { name: string; icons: IconifyJSON; } From 64833313be46bfa8c2e1e68406c0cc908161a66c Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 28 Jan 2026 13:45:12 +0000 Subject: [PATCH 2/2] [autofix.ci] apply automated fixes --- docs/config/setup/mermaid/README.md | 3 ++ .../mermaid/interfaces/AsyncIconLoader.md | 33 ++++++++++++++++++ .../setup/mermaid/interfaces/Mermaid.md | 34 +++++++++---------- .../setup/mermaid/interfaces/RunOptions.md | 10 +++--- .../mermaid/interfaces/SyncIconLoader.md | 29 ++++++++++++++++ .../setup/mermaid/type-aliases/IconLoader.md | 15 ++++++++ .../config/setup/mermaid/variables/default.md | 2 +- 7 files changed, 103 insertions(+), 23 deletions(-) create mode 100644 docs/config/setup/mermaid/interfaces/AsyncIconLoader.md create mode 100644 docs/config/setup/mermaid/interfaces/SyncIconLoader.md create mode 100644 docs/config/setup/mermaid/type-aliases/IconLoader.md diff --git a/docs/config/setup/mermaid/README.md b/docs/config/setup/mermaid/README.md index 653d9059293..b9714e48fdc 100644 --- a/docs/config/setup/mermaid/README.md +++ b/docs/config/setup/mermaid/README.md @@ -12,6 +12,7 @@ ## Interfaces +- [AsyncIconLoader](interfaces/AsyncIconLoader.md) - [DetailedError](interfaces/DetailedError.md) - [ExternalDiagramDefinition](interfaces/ExternalDiagramDefinition.md) - [LayoutData](interfaces/LayoutData.md) @@ -23,10 +24,12 @@ - [RenderOptions](interfaces/RenderOptions.md) - [RenderResult](interfaces/RenderResult.md) - [RunOptions](interfaces/RunOptions.md) +- [SyncIconLoader](interfaces/SyncIconLoader.md) - [UnknownDiagramError](interfaces/UnknownDiagramError.md) ## Type Aliases +- [IconLoader](type-aliases/IconLoader.md) - [InternalHelpers](type-aliases/InternalHelpers.md) - [ParseErrorFunction](type-aliases/ParseErrorFunction.md) - [SVG](type-aliases/SVG.md) diff --git a/docs/config/setup/mermaid/interfaces/AsyncIconLoader.md b/docs/config/setup/mermaid/interfaces/AsyncIconLoader.md new file mode 100644 index 00000000000..31912c30c5e --- /dev/null +++ b/docs/config/setup/mermaid/interfaces/AsyncIconLoader.md @@ -0,0 +1,33 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/mermaid/interfaces/AsyncIconLoader.md](../../../../../packages/mermaid/src/docs/config/setup/mermaid/interfaces/AsyncIconLoader.md). + +[**mermaid**](../../README.md) + +--- + +# Interface: AsyncIconLoader + +Defined in: [packages/mermaid/src/rendering-util/icons.ts:8](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/icons.ts#L8) + +## Properties + +### loader() + +> **loader**: () => `Promise`<`IconifyJSON`> + +Defined in: [packages/mermaid/src/rendering-util/icons.ts:10](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/icons.ts#L10) + +#### Returns + +`Promise`<`IconifyJSON`> + +--- + +### name + +> **name**: `string` + +Defined in: [packages/mermaid/src/rendering-util/icons.ts:9](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/icons.ts#L9) diff --git a/docs/config/setup/mermaid/interfaces/Mermaid.md b/docs/config/setup/mermaid/interfaces/Mermaid.md index 0c63d140aa2..4404e3d9b81 100644 --- a/docs/config/setup/mermaid/interfaces/Mermaid.md +++ b/docs/config/setup/mermaid/interfaces/Mermaid.md @@ -10,7 +10,7 @@ # Interface: Mermaid -Defined in: [packages/mermaid/src/mermaid.ts:429](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L429) +Defined in: [packages/mermaid/src/mermaid.ts:433](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L433) ## Properties @@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/mermaid.ts:429](https://github.com/mermaid-js/ > **contentLoaded**: () => `void` -Defined in: [packages/mermaid/src/mermaid.ts:447](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L447) +Defined in: [packages/mermaid/src/mermaid.ts:451](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L451) \##contentLoaded Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the @@ -34,7 +34,7 @@ page. > **detectType**: (`text`, `config?`) => `string` -Defined in: [packages/mermaid/src/mermaid.ts:449](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L449) +Defined in: [packages/mermaid/src/mermaid.ts:453](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L453) Detects the type of the graph text. @@ -90,7 +90,7 @@ A graph definition key > **getRegisteredDiagramsMetadata**: () => `Pick`<[`ExternalDiagramDefinition`](ExternalDiagramDefinition.md), `"id"`>\[] -Defined in: [packages/mermaid/src/mermaid.ts:451](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L451) +Defined in: [packages/mermaid/src/mermaid.ts:455](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L455) Gets the metadata for all registered diagrams. Currently only the id is returned. @@ -107,7 +107,7 @@ An array of objects with the id of the diagram. > **init**: (`config?`, `nodes?`, `callback?`) => `Promise`<`void`> -Defined in: [packages/mermaid/src/mermaid.ts:442](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L442) +Defined in: [packages/mermaid/src/mermaid.ts:446](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L446) ## init @@ -155,7 +155,7 @@ Use [initialize](#initialize) and [run](#run) instead. > **initialize**: (`config`) => `void` -Defined in: [packages/mermaid/src/mermaid.ts:446](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L446) +Defined in: [packages/mermaid/src/mermaid.ts:450](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L450) Used to set configurations for mermaid. This function should be called before the run function. @@ -178,7 +178,7 @@ Configuration object for mermaid. > **mermaidAPI**: `Readonly`<{ `defaultConfig`: [`MermaidConfig`](MermaidConfig.md); `getConfig`: () => [`MermaidConfig`](MermaidConfig.md); `getDiagramFromText`: (`text`, `metadata`) => `Promise`<`Diagram`>; `getSiteConfig`: () => [`MermaidConfig`](MermaidConfig.md); `globalReset`: () => `void`; `initialize`: (`userOptions`) => `void`; `parse`: {(`text`, `parseOptions`): `Promise`<`false` | [`ParseResult`](ParseResult.md)>; (`text`, `parseOptions?`): `Promise`<[`ParseResult`](ParseResult.md)>; }; `render`: (`id`, `text`, `svgContainingElement?`) => `Promise`<[`RenderResult`](RenderResult.md)>; `reset`: () => `void`; `setConfig`: (`conf`) => [`MermaidConfig`](MermaidConfig.md); `updateSiteConfig`: (`conf`) => [`MermaidConfig`](MermaidConfig.md); }> -Defined in: [packages/mermaid/src/mermaid.ts:436](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L436) +Defined in: [packages/mermaid/src/mermaid.ts:440](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L440) **`Internal`** @@ -192,7 +192,7 @@ Use [parse](#parse) and [render](#render) instead. Please [open a discussion](ht > **parse**: {(`text`, `parseOptions`): `Promise`<`false` | [`ParseResult`](ParseResult.md)>; (`text`, `parseOptions?`): `Promise`<[`ParseResult`](ParseResult.md)>; } -Defined in: [packages/mermaid/src/mermaid.ts:437](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L437) +Defined in: [packages/mermaid/src/mermaid.ts:441](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L441) #### Call Signature @@ -268,7 +268,7 @@ Error if the diagram is invalid and parseOptions.suppressErrors is false or not > `optional` **parseError**: [`ParseErrorFunction`](../type-aliases/ParseErrorFunction.md) -Defined in: [packages/mermaid/src/mermaid.ts:431](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L431) +Defined in: [packages/mermaid/src/mermaid.ts:435](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L435) --- @@ -276,7 +276,7 @@ Defined in: [packages/mermaid/src/mermaid.ts:431](https://github.com/mermaid-js/ > **registerExternalDiagrams**: (`diagrams`, `opts`) => `Promise`<`void`> -Defined in: [packages/mermaid/src/mermaid.ts:445](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L445) +Defined in: [packages/mermaid/src/mermaid.ts:449](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L449) Used to register external diagram types. @@ -306,13 +306,13 @@ If opts.lazyLoad is false, the diagrams will be loaded immediately. > **registerIconPacks**: (`iconLoaders`) => `void` -Defined in: [packages/mermaid/src/mermaid.ts:450](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L450) +Defined in: [packages/mermaid/src/mermaid.ts:454](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L454) #### Parameters ##### iconLoaders -`IconLoader`\[] +[`IconLoader`](../type-aliases/IconLoader.md)\[] #### Returns @@ -324,7 +324,7 @@ Defined in: [packages/mermaid/src/mermaid.ts:450](https://github.com/mermaid-js/ > **registerLayoutLoaders**: (`loaders`) => `void` -Defined in: [packages/mermaid/src/mermaid.ts:444](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L444) +Defined in: [packages/mermaid/src/mermaid.ts:448](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L448) #### Parameters @@ -342,7 +342,7 @@ Defined in: [packages/mermaid/src/mermaid.ts:444](https://github.com/mermaid-js/ > **render**: (`id`, `text`, `svgContainingElement?`) => `Promise`<[`RenderResult`](RenderResult.md)> -Defined in: [packages/mermaid/src/mermaid.ts:438](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L438) +Defined in: [packages/mermaid/src/mermaid.ts:442](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L442) #### Parameters @@ -374,7 +374,7 @@ Deprecated for external use. > **run**: (`options`) => `Promise`<`void`> -Defined in: [packages/mermaid/src/mermaid.ts:443](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L443) +Defined in: [packages/mermaid/src/mermaid.ts:447](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L447) ## run @@ -418,7 +418,7 @@ Optional runtime configs > **setParseErrorHandler**: (`parseErrorHandler`) => `void` -Defined in: [packages/mermaid/src/mermaid.ts:448](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L448) +Defined in: [packages/mermaid/src/mermaid.ts:452](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L452) ## setParseErrorHandler Alternative to directly setting parseError using: @@ -449,4 +449,4 @@ New parseError() callback. > **startOnLoad**: `boolean` -Defined in: [packages/mermaid/src/mermaid.ts:430](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L430) +Defined in: [packages/mermaid/src/mermaid.ts:434](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L434) diff --git a/docs/config/setup/mermaid/interfaces/RunOptions.md b/docs/config/setup/mermaid/interfaces/RunOptions.md index ecd679aa54c..850f8cba97b 100644 --- a/docs/config/setup/mermaid/interfaces/RunOptions.md +++ b/docs/config/setup/mermaid/interfaces/RunOptions.md @@ -10,7 +10,7 @@ # Interface: RunOptions -Defined in: [packages/mermaid/src/mermaid.ts:41](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L41) +Defined in: [packages/mermaid/src/mermaid.ts:45](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L45) ## Properties @@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/mermaid.ts:41](https://github.com/mermaid-js/m > `optional` **nodes**: `ArrayLike`<`HTMLElement`> -Defined in: [packages/mermaid/src/mermaid.ts:49](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L49) +Defined in: [packages/mermaid/src/mermaid.ts:53](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L53) The nodes to render. If this is set, `querySelector` will be ignored. @@ -28,7 +28,7 @@ The nodes to render. If this is set, `querySelector` will be ignored. > `optional` **postRenderCallback**: (`id`) => `unknown` -Defined in: [packages/mermaid/src/mermaid.ts:53](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L53) +Defined in: [packages/mermaid/src/mermaid.ts:57](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L57) A callback to call after each diagram is rendered. @@ -48,7 +48,7 @@ A callback to call after each diagram is rendered. > `optional` **querySelector**: `string` -Defined in: [packages/mermaid/src/mermaid.ts:45](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L45) +Defined in: [packages/mermaid/src/mermaid.ts:49](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L49) The query selector to use when finding elements to render. Default: `".mermaid"`. @@ -58,6 +58,6 @@ The query selector to use when finding elements to render. Default: `".mermaid"` > `optional` **suppressErrors**: `boolean` -Defined in: [packages/mermaid/src/mermaid.ts:57](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L57) +Defined in: [packages/mermaid/src/mermaid.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L61) If `true`, errors will be logged to the console, but not thrown. Default: `false` diff --git a/docs/config/setup/mermaid/interfaces/SyncIconLoader.md b/docs/config/setup/mermaid/interfaces/SyncIconLoader.md new file mode 100644 index 00000000000..bfefe1e6f32 --- /dev/null +++ b/docs/config/setup/mermaid/interfaces/SyncIconLoader.md @@ -0,0 +1,29 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/mermaid/interfaces/SyncIconLoader.md](../../../../../packages/mermaid/src/docs/config/setup/mermaid/interfaces/SyncIconLoader.md). + +[**mermaid**](../../README.md) + +--- + +# Interface: SyncIconLoader + +Defined in: [packages/mermaid/src/rendering-util/icons.ts:13](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/icons.ts#L13) + +## Properties + +### icons + +> **icons**: `IconifyJSON` + +Defined in: [packages/mermaid/src/rendering-util/icons.ts:15](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/icons.ts#L15) + +--- + +### name + +> **name**: `string` + +Defined in: [packages/mermaid/src/rendering-util/icons.ts:14](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/icons.ts#L14) diff --git a/docs/config/setup/mermaid/type-aliases/IconLoader.md b/docs/config/setup/mermaid/type-aliases/IconLoader.md new file mode 100644 index 00000000000..98a312e71c9 --- /dev/null +++ b/docs/config/setup/mermaid/type-aliases/IconLoader.md @@ -0,0 +1,15 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/mermaid/type-aliases/IconLoader.md](../../../../../packages/mermaid/src/docs/config/setup/mermaid/type-aliases/IconLoader.md). + +[**mermaid**](../../README.md) + +--- + +# Type Alias: IconLoader + +> **IconLoader** = [`AsyncIconLoader`](../interfaces/AsyncIconLoader.md) | [`SyncIconLoader`](../interfaces/SyncIconLoader.md) + +Defined in: [packages/mermaid/src/rendering-util/icons.ts:18](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/icons.ts#L18) diff --git a/docs/config/setup/mermaid/variables/default.md b/docs/config/setup/mermaid/variables/default.md index a953a641b85..d4517de8550 100644 --- a/docs/config/setup/mermaid/variables/default.md +++ b/docs/config/setup/mermaid/variables/default.md @@ -12,4 +12,4 @@ > `const` **default**: [`Mermaid`](../interfaces/Mermaid.md) -Defined in: [packages/mermaid/src/mermaid.ts:454](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L454) +Defined in: [packages/mermaid/src/mermaid.ts:458](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L458)