From 19e79fda73a168908153f982d0b89f59dc6cc30e Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 13 Sep 2024 19:49:24 +0530 Subject: [PATCH] feat: Add title to parseResult --- packages/mermaid/src/mermaidAPI.ts | 16 +++++++++++----- packages/mermaid/src/types.ts | 7 ++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index fa2894ba7..6bce76762 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -68,17 +68,23 @@ function processAndSetConfigs(text: string) { async function parse( text: string, parseOptions: ParseOptions & { suppressErrors: true } -): Promise; +): Promise; async function parse(text: string, parseOptions?: ParseOptions): Promise; -async function parse(text: string, parseOptions?: ParseOptions): Promise { +async function parse( + text: string, + parseOptions?: ParseOptions +): Promise { addDiagrams(); + let code = ''; + let title = undefined; + let config: MermaidConfig = {}; try { - const { code, config } = processAndSetConfigs(text); + ({ code, config, title } = processAndSetConfigs(text)); const diagram = await getDiagramFromText(code); - return { diagram, config }; + return { diagram, code, config, title, success: true }; } catch (error) { if (parseOptions?.suppressErrors) { - return false; + return { code, config, title, success: false, error }; } throw error; } diff --git a/packages/mermaid/src/types.ts b/packages/mermaid/src/types.ts index 7c8c7a715..9e3d87738 100644 --- a/packages/mermaid/src/types.ts +++ b/packages/mermaid/src/types.ts @@ -58,16 +58,21 @@ export interface ParseOptions { } export interface ParseResult { + success: boolean; + + code: string; + /** * The config passed as YAML frontmatter or directives */ config: MermaidConfig; + title?: string; /** * The diagram AST * */ - diagram: Diagram; + diagram?: Diagram; } // This makes it clear that we're working with a d3 selected element of some kind, even though it's hard to specify the exact type.