From 51c6462f1da279afe9274a880d01e3b80223ee7c Mon Sep 17 00:00:00 2001 From: Ted Marozzi Date: Thu, 2 Mar 2023 19:17:14 +1100 Subject: [PATCH 1/5] feat: expose the diagram api --- docs/config/setup/modules/mermaidAPI.md | 2 +- packages/mermaid/src/mermaidAPI.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 5bedb8954..5394a7e76 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -31,7 +31,7 @@ Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi) ### mermaidAPI -• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseOptions?`: [`ParseOptions`](../interfaces/mermaidAPI.ParseOptions.md)) => `Promise`<`boolean` | `void`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `svgContainingElement?`: `Element`) => `Promise`<[`RenderResult`](../interfaces/mermaidAPI.RenderResult.md)> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> +• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getDiagramFromText`: (`text`: `string`) => `Promise`<`Diagram`> ; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseOptions?`: [`ParseOptions`](../interfaces/mermaidAPI.ParseOptions.md)) => `Promise`<`boolean` | `void`> ; `parseDirective`: (`p`: `any`, `statement`: `string`, `context`: `string`, `type`: `string`) => `void` ; `render`: (`id`: `string`, `text`: `string`, `svgContainingElement?`: `Element`) => `Promise`<[`RenderResult`](../interfaces/mermaidAPI.RenderResult.md)> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }> ## mermaidAPI configuration defaults diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 191fc672b..b5c3236ff 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -663,6 +663,7 @@ export const mermaidAPI = Object.freeze({ render, parse, parseDirective, + getDiagramFromText, initialize, getConfig: configApi.getConfig, setConfig: configApi.setConfig, From 649e6820ccb1974b6a7314ac0cd3c621d64d8c8b Mon Sep 17 00:00:00 2001 From: Ted Marozzi Date: Mon, 6 Mar 2023 05:18:33 +1100 Subject: [PATCH 2/5] feat: improve documentation --- packages/mermaid/src/Diagram.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 1e7539aeb..3010ce130 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -7,6 +7,11 @@ import { UnknownDiagramError } from './errors'; import { DetailedError } from './utils'; export type ParseErrorFunction = (err: string | DetailedError | unknown, hash?: any) => void; + +/** + * An object representing a parsed mermaid diagram definition. + * @privateRemarks This is exported as part of the public mermaidAPI. + */ export class Diagram { type = 'graph'; parser; @@ -68,6 +73,15 @@ export class Diagram { } } +/** + * Parse the text asynchronously and generate a Diagram object asynchronously. + * **Warning:** This function may be changed in the future. + * @alpha + * @param text - The mermaid diagram definition. + * @returns A the Promise of a Diagram object. + * @throws {@link UnknownDiagramError} if the diagram type can not be found. + * @privateRemarks This is exported as part of the public mermaidAPI. + */ export const getDiagramFromText = async (text: string): Promise => { const type = detectType(text, configApi.getConfig()); try { From 969088187cd012539879d59f3a85763d73475031 Mon Sep 17 00:00:00 2001 From: Ted Marozzi Date: Mon, 6 Mar 2023 05:28:34 +1100 Subject: [PATCH 3/5] feat: added internal label --- packages/mermaid/src/Diagram.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 3010ce130..79d7da63a 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -77,6 +77,7 @@ export class Diagram { * Parse the text asynchronously and generate a Diagram object asynchronously. * **Warning:** This function may be changed in the future. * @alpha + * @internal * @param text - The mermaid diagram definition. * @returns A the Promise of a Diagram object. * @throws {@link UnknownDiagramError} if the diagram type can not be found. From 44d806e7f5ed961bb78c265f93d98801e8f6a1c2 Mon Sep 17 00:00:00 2001 From: Ted Marozzi <38032037+ted-marozzi@users.noreply.github.com> Date: Mon, 6 Mar 2023 10:17:43 +1100 Subject: [PATCH 4/5] Update Diagram.ts --- packages/mermaid/src/Diagram.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 79d7da63a..27cfbec00 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -76,7 +76,6 @@ export class Diagram { /** * Parse the text asynchronously and generate a Diagram object asynchronously. * **Warning:** This function may be changed in the future. - * @alpha * @internal * @param text - The mermaid diagram definition. * @returns A the Promise of a Diagram object. From 72c94b6e6e8e8f77e88d5780e8b9e76e14caf13f Mon Sep 17 00:00:00 2001 From: Ted Marozzi <38032037+ted-marozzi@users.noreply.github.com> Date: Mon, 6 Mar 2023 10:19:06 +1100 Subject: [PATCH 5/5] Update Diagram.ts --- packages/mermaid/src/Diagram.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 27cfbec00..3010ce130 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -76,7 +76,7 @@ export class Diagram { /** * Parse the text asynchronously and generate a Diagram object asynchronously. * **Warning:** This function may be changed in the future. - * @internal + * @alpha * @param text - The mermaid diagram definition. * @returns A the Promise of a Diagram object. * @throws {@link UnknownDiagramError} if the diagram type can not be found.