create ParserDefinition type

This commit is contained in:
Reda Al Sulais 2023-08-10 22:26:04 +03:00
parent 66b579cd89
commit 980a5ac8b5
3 changed files with 20 additions and 6 deletions

View File

@ -35,7 +35,12 @@ describe('DiagramAPI', () => {
'loki', 'loki',
{ {
db: {}, db: {},
parser: {}, parser: {
parse: (_text) => {
return;
},
parser: { yy: {} },
},
renderer: {}, renderer: {},
styles: {}, styles: {},
}, },

View File

@ -1,5 +1,5 @@
import { Diagram } from '../Diagram.js'; import { Diagram } from '../Diagram.js';
import { MermaidConfig } from '../config.type.js'; import type { MermaidConfig } from '../config.type.js';
import type * as d3 from 'd3'; import type * as d3 from 'd3';
export interface InjectUtils { export interface InjectUtils {
@ -27,7 +27,7 @@ export interface DiagramDB {
export interface DiagramDefinition { export interface DiagramDefinition {
db: DiagramDB; db: DiagramDB;
renderer: any; renderer: any;
parser: any; parser: ParserDefinition;
styles?: any; styles?: any;
init?: (config: MermaidConfig) => void; init?: (config: MermaidConfig) => void;
injectUtils?: ( injectUtils?: (
@ -70,6 +70,11 @@ export type DrawDefinition = (
diagramObject: Diagram diagramObject: Diagram
) => void; ) => void;
export interface ParserDefinition {
parse: (text: string) => void;
parser: { yy: DiagramDB };
}
/** /**
* Type for function parse directive from diagram code. * Type for function parse directive from diagram code.
* *

View File

@ -3,6 +3,7 @@ import { mermaidAPI } from './mermaidAPI.js';
import './diagram-api/diagram-orchestration.js'; import './diagram-api/diagram-orchestration.js';
import { addDiagrams } from './diagram-api/diagram-orchestration.js'; import { addDiagrams } from './diagram-api/diagram-orchestration.js';
import { beforeAll, describe, it, expect, vi } from 'vitest'; import { beforeAll, describe, it, expect, vi } from 'vitest';
import type { DiagramDefinition } from './diagram-api/types.js';
beforeAll(async () => { beforeAll(async () => {
addDiagrams(); addDiagrams();
@ -92,13 +93,16 @@ describe('when using mermaid and ', () => {
it('should defer diagram load based on parameter', async () => { it('should defer diagram load based on parameter', async () => {
let loaded = false; let loaded = false;
const dummyDiagram = { const dummyDiagram: DiagramDefinition = {
db: {}, db: {},
renderer: () => { renderer: () => {
// do nothing // do nothing
}, },
parser: () => { parser: {
// do nothing parse: (_text) => {
return;
},
parser: { yy: {} },
}, },
styles: () => { styles: () => {
// do nothing // do nothing