From 1fad9e6eefd1e9ab6fe6aa708c8e2fa4df7cb3ce Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sun, 30 Jun 2024 01:19:11 +0530 Subject: [PATCH] chore: Fix eslint issues --- .../setup/interfaces/mermaid.DetailedError.md | 8 ++++---- docs/config/setup/modules/mermaid.md | 2 +- .../mermaid/src/dagre-wrapper/edgeMarker.spec.ts | 1 + packages/mermaid/src/diagrams/er/erDb.js | 10 +++++++--- .../src/diagrams/flowchart/flowChartShapes.spec.js | 1 + .../src/diagrams/flowchart/flowRenderer-v2.js | 7 +++---- .../mermaid/src/diagrams/flowchart/flowRenderer.js | 12 ++++++------ .../src/diagrams/flowchart/flowRenderer.spec.js | 1 + packages/mermaid/src/diagrams/pie/pieRenderer.ts | 1 + .../src/diagrams/sequence/sequenceDiagram.spec.js | 12 ++++++------ .../src/diagrams/sequence/sequenceRenderer.ts | 10 +++++----- packages/mermaid/src/diagrams/sequence/svgDraw.js | 13 +++++++------ .../mermaid/src/diagrams/state/stateRenderer-v2.js | 3 +-- .../src/diagrams/timeline/timelineRenderer.ts | 3 +-- packages/mermaid/src/docs/.vitepress/config.ts | 6 +++--- .../src/docs/.vitepress/mermaid-markdown-all.ts | 2 +- .../mermaid/src/docs/.vitepress/theme/index.ts | 2 +- packages/mermaid/src/docs/vite.config.ts | 4 ++-- packages/mermaid/src/logger.ts | 7 +++---- packages/mermaid/src/styles.spec.ts | 7 ++++--- packages/mermaid/src/tests/MockedD3.ts | 2 +- packages/mermaid/src/utils/lineWithOffset.ts | 14 ++++++++++++-- .../parser/src/language/common/tokenBuilder.ts | 1 + 23 files changed, 73 insertions(+), 56 deletions(-) diff --git a/docs/config/setup/interfaces/mermaid.DetailedError.md b/docs/config/setup/interfaces/mermaid.DetailedError.md index 6b7d471ae..3b019e58a 100644 --- a/docs/config/setup/interfaces/mermaid.DetailedError.md +++ b/docs/config/setup/interfaces/mermaid.DetailedError.md @@ -16,7 +16,7 @@ #### Defined in -[packages/mermaid/src/utils.ts:789](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L789) +[packages/mermaid/src/utils.ts:785](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L785) --- @@ -26,7 +26,7 @@ #### Defined in -[packages/mermaid/src/utils.ts:787](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L787) +[packages/mermaid/src/utils.ts:783](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L783) --- @@ -36,7 +36,7 @@ #### Defined in -[packages/mermaid/src/utils.ts:790](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L790) +[packages/mermaid/src/utils.ts:786](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L786) --- @@ -46,4 +46,4 @@ #### Defined in -[packages/mermaid/src/utils.ts:785](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L785) +[packages/mermaid/src/utils.ts:781](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L781) diff --git a/docs/config/setup/modules/mermaid.md b/docs/config/setup/modules/mermaid.md index d51400d6e..10e9330b5 100644 --- a/docs/config/setup/modules/mermaid.md +++ b/docs/config/setup/modules/mermaid.md @@ -44,7 +44,7 @@ #### Defined in -[packages/mermaid/src/Diagram.ts:9](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/Diagram.ts#L9) +[packages/mermaid/src/Diagram.ts:10](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/Diagram.ts#L10) ## Variables diff --git a/packages/mermaid/src/dagre-wrapper/edgeMarker.spec.ts b/packages/mermaid/src/dagre-wrapper/edgeMarker.spec.ts index 6cfb59fab..6fb439552 100644 --- a/packages/mermaid/src/dagre-wrapper/edgeMarker.spec.ts +++ b/packages/mermaid/src/dagre-wrapper/edgeMarker.spec.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/unbound-method */ import type { Mocked } from 'vitest'; import type { SVG } from '../diagram-api/types.js'; import { addEdgeMarkers } from './edgeMarker.js'; diff --git a/packages/mermaid/src/diagrams/er/erDb.js b/packages/mermaid/src/diagrams/er/erDb.js index 745ef938a..f24f48198 100644 --- a/packages/mermaid/src/diagrams/er/erDb.js +++ b/packages/mermaid/src/diagrams/er/erDb.js @@ -26,12 +26,16 @@ const Identification = { NON_IDENTIFYING: 'NON_IDENTIFYING', IDENTIFYING: 'IDENTIFYING', }; - +/** + * Add entity + * @param {string} name - The name of the entity + * @param {string | undefined} alias - The alias of the entity + */ const addEntity = function (name, alias = undefined) { if (!entities.has(name)) { - entities.set(name, { attributes: [], alias: alias }); + entities.set(name, { attributes: [], alias }); log.info('Added new entity :', name); - } else if (entities.has(name) && !entities.get(name).alias && alias) { + } else if (!entities.get(name).alias && alias) { entities.get(name).alias = alias; log.info(`Add alias '${alias}' to entity '${name}'`); } diff --git a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js index 96e6f6fd7..3a1bd865f 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/restrict-template-expressions */ import { addToRender } from './flowChartShapes.js'; describe('flowchart shapes', function () { diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js index 0e963c8cc..41c4b7009 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js @@ -420,14 +420,13 @@ export const draw = async function (text, id, _version, diagObj) { log.info('Edges', edges); let i = 0; for (i = subGraphs.length - 1; i >= 0; i--) { - // for (let i = 0; i < subGraphs.length; i++) { subG = subGraphs[i]; selectAll('cluster').append('text'); - for (let j = 0; j < subG.nodes.length; j++) { - log.info('Setting up subgraphs', subG.nodes[j], subG.id); - g.setParent(subG.nodes[j], subG.id); + for (const node of subG.nodes) { + log.info('Setting up subgraphs', node, subG.id); + g.setParent(node, subG.id); } } await addVertices(vert, g, id, root, doc, diagObj); diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js index ca558987c..8b261e66c 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js @@ -339,14 +339,14 @@ export const draw = async function (text, id, _version, diagObj) { selectAll('cluster').append('text'); - for (let j = 0; j < subG.nodes.length; j++) { + for (const node of subG.nodes) { log.warn( 'Setting subgraph', - subG.nodes[j], - diagObj.db.lookUpDomId(subG.nodes[j]), + node, + diagObj.db.lookUpDomId(node), diagObj.db.lookUpDomId(subG.id) ); - g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id)); + g.setParent(diagObj.db.lookUpDomId(node), diagObj.db.lookUpDomId(subG.id)); } } await addVertices(vert, g, id, root, doc, diagObj); @@ -429,8 +429,8 @@ export const draw = async function (text, id, _version, diagObj) { te.attr('transform', `translate(${xPos + _width / 2}, ${yPos + 14})`); te.attr('id', id + 'Text'); - for (let j = 0; j < subG.classes.length; j++) { - clusterEl[0].classList.add(subG.classes[j]); + for (const className of subG.classes) { + clusterEl[0].classList.add(className); } } } diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js index bdf778b54..79bf75453 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/restrict-template-expressions */ import { addVertices, addEdges } from './flowRenderer.js'; import { setConfig } from '../../diagram-api/diagramAPI.js'; diff --git a/packages/mermaid/src/diagrams/pie/pieRenderer.ts b/packages/mermaid/src/diagrams/pie/pieRenderer.ts index 5a3698e1e..8f3b9cc5b 100644 --- a/packages/mermaid/src/diagrams/pie/pieRenderer.ts +++ b/packages/mermaid/src/diagrams/pie/pieRenderer.ts @@ -119,6 +119,7 @@ export const draw: DrawDefinition = (text, id, _version, diagObj) => { return ((datum.data.value / sum) * 100).toFixed(0) + '%'; }) .attr('transform', (datum: d3.PieArcDatum): string => { + // eslint-disable-next-line @typescript-eslint/restrict-plus-operands return 'translate(' + labelArcGenerator.centroid(datum) + ')'; }) .style('text-anchor', 'middle') diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js index 5a1a5699d..7f6b80ca5 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js @@ -1519,7 +1519,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { diagram.renderer.bounds.init(); conf = diagram.db.getConfig(); }); - it('should handle a simple bound call', async () => { + it('should handle a simple bound call', () => { diagram.renderer.bounds.insert(100, 100, 200, 200); const { bounds } = diagram.renderer.bounds.getBounds(); @@ -1528,7 +1528,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(200); expect(bounds.stopy).toBe(200); }); - it('should handle an expanding bound', async () => { + it('should handle an expanding bound', () => { diagram.renderer.bounds.insert(100, 100, 200, 200); diagram.renderer.bounds.insert(25, 50, 300, 400); @@ -1538,7 +1538,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(300); expect(bounds.stopy).toBe(400); }); - it('should handle inserts within the bound without changing the outer bounds', async () => { + it('should handle inserts within the bound without changing the outer bounds', () => { diagram.renderer.bounds.insert(100, 100, 200, 200); diagram.renderer.bounds.insert(25, 50, 300, 400); diagram.renderer.bounds.insert(125, 150, 150, 200); @@ -1549,7 +1549,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(300); expect(bounds.stopy).toBe(400); }); - it('should handle a loop without expanding the area', async () => { + it('should handle a loop without expanding the area', () => { diagram.renderer.bounds.insert(25, 50, 300, 400); diagram.renderer.bounds.verticalPos = 150; diagram.renderer.bounds.newLoop(); @@ -1570,7 +1570,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(300); expect(bounds.stopy).toBe(400); }); - it('should handle multiple loops withtout expanding the bounds', async () => { + it('should handle multiple loops withtout expanding the bounds', () => { diagram.renderer.bounds.insert(100, 100, 1000, 1000); diagram.renderer.bounds.verticalPos = 200; diagram.renderer.bounds.newLoop(); @@ -1601,7 +1601,7 @@ describe('when checking the bounds in a sequenceDiagram', function () { expect(bounds.stopx).toBe(1000); expect(bounds.stopy).toBe(1000); }); - it('should handle a loop that expands the area', async () => { + it('should handle a loop that expands the area', () => { diagram.renderer.bounds.insert(100, 100, 200, 200); diagram.renderer.bounds.verticalPos = 200; diagram.renderer.bounds.newLoop(); diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index d9fbb16c5..5299f1b1e 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -495,7 +495,7 @@ const drawMessage = async function (diagram, msgModel, lineStartY: number, diagO } }; -const addActorRenderingData = async function ( +const addActorRenderingData = function ( diagram, actors, createdActors: Map, @@ -822,7 +822,7 @@ export const draw = async function (_text: string, id: string, _version: string, actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey)); } - await addActorRenderingData(diagram, actors, createdActors, actorKeys, 0, messages, false); + addActorRenderingData(diagram, actors, createdActors, actorKeys, 0, messages, false); const loopWidths = await calculateLoopBounds(messages, actors, maxMessageWidthPerActor, diagObj); // The arrow head definition is attached to the svg once @@ -1076,7 +1076,7 @@ export const draw = async function (_text: string, id: string, _version: string, box.stopx = box.startx + box.width; box.stopy = box.starty + box.height; box.stroke = 'rgb(0,0,0, 0.5)'; - await svgDraw.drawBox(diagram, box, conf); + svgDraw.drawBox(diagram, box, conf); } if (hasBoxes) { @@ -1147,7 +1147,7 @@ async function getMaxMessageWidthPerActor( actors: Map, messages: any[], diagObj: Diagram -): Promise<{ [id: string]: number }> { +): Promise> { const maxMessageWidthPerActor = {}; for (const msg of messages) { @@ -1581,7 +1581,7 @@ const calculateLoopBounds = async function (messages, actors, _maxWidthPerActor, const lastActorActivationIdx = bounds.activations .map((a) => a.actor) .lastIndexOf(msg.from); - delete bounds.activations.splice(lastActorActivationIdx, 1)[0]; + bounds.activations.splice(lastActorActivationIdx, 1).splice(0, 1); } break; } diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.js b/packages/mermaid/src/diagrams/sequence/svgDraw.js index eefa97192..51968ef9f 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.js @@ -115,6 +115,7 @@ export const drawKatex = async function (elem, textData, msgModel = null) { stopx = temp; } + // eslint-disable-next-line @typescript-eslint/restrict-plus-operands textElem.attr('x', Math.round(startx + Math.abs(startx - stopx) / 2 - dim.width / 2)); if (textData.class === 'loopText') { textElem.attr('y', Math.round(starty)); @@ -325,7 +326,7 @@ export const fixLifeLineHeights = (diagram, actors, actorKeys, conf) => { * @param {any} conf - DrawText implementation discriminator object * @param {boolean} isFooter - If the actor is the footer one */ -const drawActorTypeParticipant = async function (elem, actor, conf, isFooter) { +const drawActorTypeParticipant = function (elem, actor, conf, isFooter) { const actorY = isFooter ? actor.stopy : actor.starty; const center = actor.x + actor.width / 2; const centerY = actorY + 5; @@ -389,7 +390,7 @@ const drawActorTypeParticipant = async function (elem, actor, conf, isFooter) { } } - await _drawTextCandidateFunc(conf, hasKatex(actor.description))( + _drawTextCandidateFunc(conf, hasKatex(actor.description))( actor.description, g, rect.x, @@ -410,7 +411,7 @@ const drawActorTypeParticipant = async function (elem, actor, conf, isFooter) { return height; }; -const drawActorTypeActor = async function (elem, actor, conf, isFooter) { +const drawActorTypeActor = function (elem, actor, conf, isFooter) { const actorY = isFooter ? actor.stopy : actor.starty; const center = actor.x + actor.width / 2; const centerY = actorY + 80; @@ -491,7 +492,7 @@ const drawActorTypeActor = async function (elem, actor, conf, isFooter) { const bounds = actElem.node().getBBox(); actor.height = bounds.height; - await _drawTextCandidateFunc(conf, hasKatex(actor.description))( + _drawTextCandidateFunc(conf, hasKatex(actor.description))( actor.description, actElem, rect.x, @@ -514,12 +515,12 @@ export const drawActor = async function (elem, actor, conf, isFooter) { } }; -export const drawBox = async function (elem, box, conf) { +export const drawBox = function (elem, box, conf) { const boxplusTextGroup = elem.append('g'); const g = boxplusTextGroup; drawBackgroundRect(g, box); if (box.name) { - await _drawTextCandidateFunc(conf)( + _drawTextCandidateFunc(conf)( box.name, g, box.x, diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index 0ecc0a73a..acb10427b 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -362,8 +362,7 @@ const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) = const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => { let dir = defaultDir; if (parsedItem.doc) { - for (let i = 0; i < parsedItem.doc.length; i++) { - const parsedItemDoc = parsedItem.doc[i]; + for (const parsedItemDoc of parsedItem.doc) { if (parsedItemDoc.stmt === 'dir') { dir = parsedItemDoc.value; } diff --git a/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts b/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts index 2f1f15689..b3405bc1b 100644 --- a/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts +++ b/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts @@ -115,8 +115,7 @@ export const draw = function (text: string, id: string, version: string, diagObj maxEventCount = Math.max(maxEventCount, task.events.length); //calculate maxEventLineLength let maxEventLineLengthTemp = 0; - for (let j = 0; j < task.events.length; j++) { - const event = task.events[j]; + for (const event of task.events) { const eventNode = { descr: event, section: task.section, diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index ad81e9e0b..940fc6940 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -9,9 +9,9 @@ const allMarkdownTransformers: MarkdownOptions = { light: 'github-light', dark: 'github-dark', }, - // eslint-disable-next-line @typescript-eslint/no-misused-promises - config: async (md) => { - await MermaidExample(md); + + config: (md) => { + MermaidExample(md); }, }; diff --git a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts index 64a069b4c..d1aeee5ac 100644 --- a/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts +++ b/packages/mermaid/src/docs/.vitepress/mermaid-markdown-all.ts @@ -1,6 +1,6 @@ import type { MarkdownRenderer } from 'vitepress'; -const MermaidExample = async (md: MarkdownRenderer) => { +const MermaidExample = (md: MarkdownRenderer) => { const defaultRenderer = md.renderer.rules.fence; if (!defaultRenderer) { diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts index dae9fd8ff..3ce3aea23 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -35,7 +35,7 @@ export default { const url = new URL(window.location.origin + to); const newPath = getRedirect(url); if (newPath) { - console.log(`Redirecting to ${newPath} from ${window.location}`); + console.log(`Redirecting to ${newPath} from ${window.location.toString()}`); // router.go isn't loading the ID properly. window.location.href = `/${newPath}`; } diff --git a/packages/mermaid/src/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts index ed5f4bab9..399e5c65e 100644 --- a/packages/mermaid/src/docs/vite.config.ts +++ b/packages/mermaid/src/docs/vite.config.ts @@ -49,12 +49,12 @@ export default defineConfig({ // TODO: will be fixed in the next vitepress release. name: 'fix-virtual', - async resolveId(id: string) { + resolveId(id: string) { if (id === virtualModuleId) { return resolvedVirtualModuleId; } }, - async load(this, id: string) { + load(this, id: string) { if (id === resolvedVirtualModuleId) { return `export default ${JSON.stringify({ securityLevel: 'loose', diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index 27ec1c919..d73b05397 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -29,12 +29,11 @@ export const log: Record = { * * @param level - The level to set the logging to. Default is `"fatal"` */ -export const setLogLevel = function (level: keyof typeof LEVELS | number | string = 'fatal') { +export const setLogLevel = function (level: keyof typeof LEVELS | number = 'fatal') { let numericLevel: number = LEVELS.fatal; if (typeof level === 'string') { - level = level.toLowerCase(); - if (level in LEVELS) { - numericLevel = LEVELS[level as keyof typeof LEVELS]; + if (level.toLowerCase() in LEVELS) { + numericLevel = LEVELS[level]; } } else if (typeof level === 'number') { numericLevel = level; diff --git a/packages/mermaid/src/styles.spec.ts b/packages/mermaid/src/styles.spec.ts index 698b2beaf..70e9e7ec5 100644 --- a/packages/mermaid/src/styles.spec.ts +++ b/packages/mermaid/src/styles.spec.ts @@ -31,7 +31,7 @@ import packet from './diagrams/packet/styles.js'; import block from './diagrams/block/styles.js'; import themes from './themes/index.js'; -async function checkValidStylisCSSStyleSheet(stylisString: string) { +function checkValidStylisCSSStyleSheet(stylisString: string) { const cssString = serialize(compile(`#my-svg-id{${stylisString}}`), stringify); const errors = validate(cssString, 'this-file-was-created-by-tests.css') as Error[]; @@ -51,6 +51,7 @@ async function checkValidStylisCSSStyleSheet(stylisString: string) { if (unexpectedErrors.length > 0) { throw new Error( + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions `The given CSS string was invalid: ${errors}.\n\n` + 'Copy the below CSS into https://jigsaw.w3.org/css-validator/validator to help debug where the invalid CSS is:\n\n' + `Original CSS value was ${cssString}` @@ -75,7 +76,7 @@ describe('styles', () => { const styles = getStyles(diagramType, '', getConfig().themeVariables); - await checkValidStylisCSSStyleSheet(styles); + checkValidStylisCSSStyleSheet(styles); }); /** @@ -110,7 +111,7 @@ describe('styles', () => { themes[themeId].getThemeVariables() ); - await checkValidStylisCSSStyleSheet(styles); + checkValidStylisCSSStyleSheet(styles); }); } } diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts index 2f00e4924..35871f14e 100644 --- a/packages/mermaid/src/tests/MockedD3.ts +++ b/packages/mermaid/src/tests/MockedD3.ts @@ -60,7 +60,7 @@ export class MockedD3 { if (beforeSelector === undefined) { this._children.push(newMock); } else { - const idOnly = beforeSelector[0] == '#' ? beforeSelector.substring(1) : beforeSelector; + const idOnly = beforeSelector.startsWith('#') ? beforeSelector.substring(1) : beforeSelector; const foundIndex = this._children.findIndex((child) => child.id === idOnly); if (foundIndex < 0) { this._children.push(newMock); diff --git a/packages/mermaid/src/utils/lineWithOffset.ts b/packages/mermaid/src/utils/lineWithOffset.ts index af0cd3b46..114dda2bd 100644 --- a/packages/mermaid/src/utils/lineWithOffset.ts +++ b/packages/mermaid/src/utils/lineWithOffset.ts @@ -45,7 +45,12 @@ export const getLineFunctionsWithOffset = ( edge: Pick ) => { return { - x: function (d: Point | [number, number], i: number, data: (Point | [number, number])[]) { + x: function ( + this: void, + d: Point | [number, number], + i: number, + data: (Point | [number, number])[] + ) { let offset = 0; if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { // Handle first point @@ -70,7 +75,12 @@ export const getLineFunctionsWithOffset = ( } return pointTransformer(d).x + offset; }, - y: function (d: Point | [number, number], i: number, data: (Point | [number, number])[]) { + y: function ( + this: void, + d: Point | [number, number], + i: number, + data: (Point | [number, number])[] + ) { // Same handling as X above let offset = 0; if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { diff --git a/packages/parser/src/language/common/tokenBuilder.ts b/packages/parser/src/language/common/tokenBuilder.ts index f99763454..1511dd390 100644 --- a/packages/parser/src/language/common/tokenBuilder.ts +++ b/packages/parser/src/language/common/tokenBuilder.ts @@ -20,6 +20,7 @@ export abstract class AbstractMermaidTokenBuilder extends DefaultTokenBuilder { // to restrict users, they mustn't have any non-whitespace characters after the keyword. tokenTypes.forEach((tokenType: TokenType): void => { if (this.keywords.has(tokenType.name) && tokenType.PATTERN !== undefined) { + // eslint-disable-next-line @typescript-eslint/no-base-to-string tokenType.PATTERN = new RegExp(tokenType.PATTERN.toString() + '(?:(?=%%)|(?!\\S))'); } });