From 66ce617bea66e39f2f23811852664e6ab3fafd04 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Mon, 12 May 2025 17:47:00 +0200 Subject: [PATCH] Added support for valueFormat directive - linting --- packages/mermaid/src/diagrams/treemap/db.ts | 14 +++++++++----- packages/mermaid/src/diagrams/treemap/parser.ts | 9 ++++++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/mermaid/src/diagrams/treemap/db.ts b/packages/mermaid/src/diagrams/treemap/db.ts index 550ad6476..49ffa8469 100644 --- a/packages/mermaid/src/diagrams/treemap/db.ts +++ b/packages/mermaid/src/diagrams/treemap/db.ts @@ -13,7 +13,7 @@ import { setAccTitle, setDiagramTitle, } from '../common/commonDb.js'; -import type { TreemapDB, TreemapData, TreemapNode } from './types.js'; +import type { TreemapDB, TreemapData, TreemapDiagramConfig, TreemapNode } from './types.js'; const defaultTreemapData: TreemapData = { nodes: [], @@ -22,11 +22,15 @@ const defaultTreemapData: TreemapData = { let outerNodes: TreemapNode[] = []; let data: TreemapData = structuredClone(defaultTreemapData); -const getConfig = () => { +const getConfig = (): Required => { + // Use type assertion with unknown as intermediate step + const defaultConfig = DEFAULT_CONFIG as unknown as { treemap: Required }; + const userConfig = commonGetConfig() as unknown as { treemap?: Partial }; + return cleanAndMerge({ - ...DEFAULT_CONFIG.treemap, - ...commonGetConfig().treemap, - }); + ...defaultConfig.treemap, + ...(userConfig.treemap ?? {}), + }) as Required; }; const getNodes = (): TreemapNode[] => data.nodes; diff --git a/packages/mermaid/src/diagrams/treemap/parser.ts b/packages/mermaid/src/diagrams/treemap/parser.ts index 34c218d34..82efb5911 100644 --- a/packages/mermaid/src/diagrams/treemap/parser.ts +++ b/packages/mermaid/src/diagrams/treemap/parser.ts @@ -11,7 +11,9 @@ import { buildHierarchy } from './utils.js'; * @param ast - The Treemap AST */ const populate = (ast: TreemapAst) => { - populateCommonDb(ast, db); + // We need to bypass the type checking for populateCommonDb + // eslint-disable-next-line @typescript-eslint/no-explicit-any + populateCommonDb(ast as any, db); const items: { level: number; @@ -77,7 +79,7 @@ const populate = (ast: TreemapAst) => { * @param item - The treemap item * @returns The name of the item */ -const getItemName = (item: any): string => { +const getItemName = (item: { name?: string | number }): string => { return item.name ? String(item.name) : ''; }; @@ -85,7 +87,8 @@ export const parser: ParserDefinition = { parse: async (text: string): Promise => { try { // Use a generic parse that accepts any diagram type - const parseFunc = parse as (diagramType: string, text: string) => Promise; + + const parseFunc = parse as (diagramType: string, text: string) => Promise; const ast = await parseFunc('treemap', text); log.debug('Treemap AST:', ast); populate(ast);