From 4a50feb5d9cdf64ecf2d0158420596a8b7b643b3 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Sat, 29 Jun 2024 16:09:50 +0530 Subject: [PATCH] chore: Resolve eslint errors --- .build/types.ts | 13 ++++++++++--- .cspell/code-terms.txt | 3 +++ .cspell/contributors.txt | 1 + .cspell/libraries.txt | 1 + .esbuild/build.ts | 8 +++++--- .esbuild/jisonPlugin.ts | 2 +- .esbuild/util.ts | 2 +- .vite/build.ts | 13 +++++++------ .vite/jsonSchemaPlugin.ts | 2 +- .../rendering/sequencediagram.spec.js | 18 ++++++++---------- eslint.config.js | 10 +++++++++- packages/mermaid/src/config.spec.ts | 2 +- packages/mermaid/src/config.type.ts | 1 - .../src/diagrams/common/svgDrawCommon.ts | 16 ++++++++++++---- .../mermaid/src/diagrams/gantt/ganttDb.spec.ts | 2 +- .../mermaid/src/diagrams/git/gitGraphAst.js | 2 +- .../mermaid/src/diagrams/packet/renderer.ts | 2 +- .../src/diagrams/sequence/sequenceRenderer.ts | 8 +++++--- packages/mermaid/src/docs/.vitepress/config.ts | 6 +++--- .../src/docs/.vitepress/contributors.ts | 3 ++- .../docs/.vitepress/scripts/fetch-avatars.ts | 8 ++++---- .../.vitepress/scripts/fetch-contributors.ts | 1 + .../mermaid/src/docs/.vitepress/teamMembers.ts | 1 + .../mermaid/src/docs/.vitepress/theme/index.ts | 10 ++++++---- .../src/docs/.vitepress/theme/redirect.ts | 2 ++ packages/mermaid/src/logger.ts | 2 +- packages/mermaid/src/preprocess.ts | 4 +--- packages/mermaid/src/utils.ts | 2 +- tests/webpack/src/index.js | 2 +- tests/webpack/webpack.config.js | 2 +- 30 files changed, 92 insertions(+), 57 deletions(-) diff --git a/.build/types.ts b/.build/types.ts index 419240782..9dec05a68 100644 --- a/.build/types.ts +++ b/.build/types.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import { packageOptions } from './common.js'; import { execSync } from 'child_process'; @@ -5,11 +6,17 @@ const buildType = (packageName: string) => { console.log(`Building types for ${packageName}`); try { const out = execSync(`tsc -p ./packages/${packageName}/tsconfig.json --emitDeclarationOnly`); - out.length > 0 && console.log(out.toString()); + if (out.length > 0) { + console.log(out.toString()); + } } catch (e) { console.error(e); - e.stdout.length > 0 && console.error(e.stdout.toString()); - e.stderr.length > 0 && console.error(e.stderr.toString()); + if (e.stdout.length > 0) { + console.error(e.stdout.toString()); + } + if (e.stderr.length > 0) { + console.error(e.stderr.toString()); + } } }; diff --git a/.cspell/code-terms.txt b/.cspell/code-terms.txt index fa063616a..64fc954aa 100644 --- a/.cspell/code-terms.txt +++ b/.cspell/code-terms.txt @@ -138,3 +138,6 @@ yaxis yfunc yytext zenuml +treemap +brotli +subconfig diff --git a/.cspell/contributors.txt b/.cspell/contributors.txt index bd3ad9da2..ae2ebef62 100644 --- a/.cspell/contributors.txt +++ b/.cspell/contributors.txt @@ -6,3 +6,4 @@ Nikolay Rozhkov Peng Xiao subhash-halder Vinod Sidharth +Per Brolin diff --git a/.cspell/libraries.txt b/.cspell/libraries.txt index 22678f2fc..090933d4a 100644 --- a/.cspell/libraries.txt +++ b/.cspell/libraries.txt @@ -58,6 +58,7 @@ rscratch sparkline sphinxcontrib ssim +shiki stylis Swimm tsbuildinfo diff --git a/.esbuild/build.ts b/.esbuild/build.ts index 3c87f9d62..310c92c7d 100644 --- a/.esbuild/build.ts +++ b/.esbuild/build.ts @@ -2,7 +2,8 @@ import { build } from 'esbuild'; import { mkdir, writeFile } from 'node:fs/promises'; import { packageOptions } from '../.build/common.js'; import { generateLangium } from '../.build/generateLangium.js'; -import { MermaidBuildOptions, defaultOptions, getBuildConfig } from './util.js'; +import type { MermaidBuildOptions } from './util.js'; +import { defaultOptions, getBuildConfig } from './util.js'; const shouldVisualize = process.argv.includes('--visualize'); @@ -35,11 +36,11 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => { if (shouldVisualize) { for (const { metafile } of results) { - if (!metafile) { + if (!metafile?.outputs) { continue; } const fileName = Object.keys(metafile.outputs) - .filter((file) => !file.includes('chunks') && file.endsWith('js'))[0] + .find((file) => !file.includes('chunks') && file.endsWith('js')) .replace('dist/', ''); // Upload metafile into https://esbuild.github.io/analyze/ await writeFile(`stats/${fileName}.meta.json`, JSON.stringify(metafile)); @@ -48,6 +49,7 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => { }; const handler = (e) => { + // eslint-disable-next-line no-console console.error(e); process.exit(1); }; diff --git a/.esbuild/jisonPlugin.ts b/.esbuild/jisonPlugin.ts index de801ea9f..007516f08 100644 --- a/.esbuild/jisonPlugin.ts +++ b/.esbuild/jisonPlugin.ts @@ -1,6 +1,6 @@ import { readFile } from 'node:fs/promises'; import { transformJison } from '../.build/jisonTransformer.js'; -import { Plugin } from 'esbuild'; +import type { Plugin } from 'esbuild'; export const jisonPlugin: Plugin = { name: 'jison', diff --git a/.esbuild/util.ts b/.esbuild/util.ts index 5c21cbf45..6d424ab17 100644 --- a/.esbuild/util.ts +++ b/.esbuild/util.ts @@ -56,7 +56,7 @@ export const getBuildConfig = (options: MermaidBuildOptions): BuildOptions => { const external: string[] = ['require', 'fs', 'path']; const { name, file, packageName } = packageOptions[entryName]; const outFileName = getFileName(name, options); - let output: BuildOptions = buildOptions({ + const output: BuildOptions = buildOptions({ absWorkingDir: resolve(__dirname, `../packages/${packageName}`), entryPoints: { [outFileName]: `src/${file}`, diff --git a/.vite/build.ts b/.vite/build.ts index 7ce93a497..486d59452 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -1,4 +1,5 @@ -import { build, InlineConfig, type PluginOption } from 'vite'; +import type { InlineConfig } from 'vite'; +import { build, type PluginOption } from 'vite'; import { resolve } from 'path'; import { fileURLToPath } from 'url'; import jisonPlugin from './jisonPlugin.js'; @@ -46,9 +47,10 @@ interface BuildOptions { export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions): InlineConfig => { const external: (string | RegExp)[] = ['require', 'fs', 'path']; + // eslint-disable-next-line no-console console.log(entryName, packageOptions[entryName]); const { name, file, packageName } = packageOptions[entryName]; - let output: OutputOptions = [ + const output: OutputOptions = [ { name, format: 'esm', @@ -83,7 +85,6 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) plugins: [ jisonPlugin(), jsonSchemaPlugin(), // handles `.schema.yaml` files - // @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite typescript({ compilerOptions: { declaration: false } }), istanbul({ exclude: ['node_modules', 'test/', '__mocks__', 'generated'], @@ -121,10 +122,10 @@ await generateLangium(); if (watch) { await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' })); - build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' })); + void build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' })); if (!mermaidOnly) { - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); - build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-zenuml' })); + void build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' })); + void build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-zenuml' })); } } else if (visualize) { await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' })); diff --git a/.vite/jsonSchemaPlugin.ts b/.vite/jsonSchemaPlugin.ts index 2e5b5cc0b..3614d5b45 100644 --- a/.vite/jsonSchemaPlugin.ts +++ b/.vite/jsonSchemaPlugin.ts @@ -1,4 +1,4 @@ -import { PluginOption } from 'vite'; +import type { PluginOption } from 'vite'; import { getDefaults, getSchema, loadSchema } from '../.build/jsonSchema.js'; /** diff --git a/cypress/integration/rendering/sequencediagram.spec.js b/cypress/integration/rendering/sequencediagram.spec.js index 7b4e98b4d..7f6835a1d 100644 --- a/cypress/integration/rendering/sequencediagram.spec.js +++ b/cypress/integration/rendering/sequencediagram.spec.js @@ -1,8 +1,6 @@ -// - import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts'; -context('Sequence diagram', () => { +describe('Sequence diagram', () => { it('should render a sequence diagram with boxes', () => { renderGraph( ` @@ -244,7 +242,7 @@ context('Sequence diagram', () => { ` ); }); - context('font settings', () => { + describe('font settings', () => { it('should render different note fonts when configured', () => { imgSnapshotTest( ` @@ -341,7 +339,7 @@ context('Sequence diagram', () => { ); }); }); - context('auth width scaling', () => { + describe('auth width scaling', () => { it('should render long actor descriptions', () => { imgSnapshotTest( ` @@ -530,7 +528,7 @@ context('Sequence diagram', () => { ); }); }); - context('background rects', () => { + describe('background rects', () => { it('should render a single and nested rects', () => { imgSnapshotTest( ` @@ -810,7 +808,7 @@ context('Sequence diagram', () => { ); }); }); - context('directives', () => { + describe('directives', () => { it('should override config with directive settings', () => { imgSnapshotTest( ` @@ -842,7 +840,7 @@ context('Sequence diagram', () => { ); }); }); - context('links', () => { + describe('links', () => { it('should support actor links', () => { renderGraph( ` @@ -933,7 +931,7 @@ context('Sequence diagram', () => { ); }); }); - context('svg size', () => { + describe('svg size', () => { it('should render a sequence diagram when useMaxWidth is true (default)', () => { renderGraph( ` @@ -1012,7 +1010,7 @@ context('Sequence diagram', () => { }); }); }); - context('render after error', () => { + describe('render after error', () => { it('should render diagram after fixing destroy participant error', () => { cy.on('uncaught:exception', (err) => { return false; diff --git a/eslint.config.js b/eslint.config.js index 964728774..5040b5374 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -19,7 +19,14 @@ export default tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended, { - ignores: ['**/dist/', '**/node_modules/', '.git/', '**/generated/', '**/coverage/'], + ignores: [ + '**/dist/', + '**/node_modules/', + '.git/', + '**/generated/', + '**/coverage/', + 'packages/mermaid/src/config.type.ts', + ], }, { languageOptions: { @@ -38,6 +45,7 @@ export default tseslint.config( ...globals.es2020, ...globals.jest, cy: 'readonly', + Cypress: 'readonly', }, }, }, diff --git a/packages/mermaid/src/config.spec.ts b/packages/mermaid/src/config.spec.ts index 8dd4ff33c..1a898b861 100644 --- a/packages/mermaid/src/config.spec.ts +++ b/packages/mermaid/src/config.spec.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ + import * as configApi from './config.js'; import type { MermaidConfig } from './config.type.js'; diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts index b7cf27e72..08ad26307 100644 --- a/packages/mermaid/src/config.type.ts +++ b/packages/mermaid/src/config.type.ts @@ -1,4 +1,3 @@ -/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, diff --git a/packages/mermaid/src/diagrams/common/svgDrawCommon.ts b/packages/mermaid/src/diagrams/common/svgDrawCommon.ts index cf962f33e..8d5ba3b7c 100644 --- a/packages/mermaid/src/diagrams/common/svgDrawCommon.ts +++ b/packages/mermaid/src/diagrams/common/svgDrawCommon.ts @@ -24,8 +24,12 @@ export const drawRect = (element: SVG | Group, rectData: RectData): D3RectElemen if (rectData.name) { rectElement.attr('name', rectData.name); } - rectData.rx !== undefined && rectElement.attr('rx', rectData.rx); - rectData.ry !== undefined && rectElement.attr('ry', rectData.ry); + if (rectData.rx) { + rectElement.attr('rx', rectData.rx); + } + if (rectData.ry) { + rectElement.attr('ry', rectData.ry); + } if (rectData.attrs !== undefined) { for (const attrKey in rectData.attrs) { @@ -33,7 +37,9 @@ export const drawRect = (element: SVG | Group, rectData: RectData): D3RectElemen } } - rectData.class !== undefined && rectElement.attr('class', rectData.class); + if (rectData.class) { + rectElement.attr('class', rectData.class); + } return rectElement; }; @@ -67,7 +73,9 @@ export const drawText = (element: SVG | Group, textData: TextData): D3TextElemen textElem.attr('class', 'legend'); textElem.style('text-anchor', textData.anchor); - textData.class !== undefined && textElem.attr('class', textData.class); + if (textData.class) { + textElem.attr('class', textData.class); + } const tspan: D3TSpanElement = textElem.append('tspan'); tspan.attr('x', textData.x + textData.textMargin * 2); diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts index a59297cdb..6f2c8c1af 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts @@ -109,7 +109,7 @@ describe('when using the ganttDb', function () { ganttDb.addTask(taskName2, taskData2); const tasks = ganttDb.getTasks(); expect(tasks[1].startTime).toEqual(expStartDate2); - if (!expEndDate2 === undefined) { + if (expEndDate2) { expect(tasks[1].endTime).toEqual(expEndDate2); } expect(tasks[1].id).toEqual(expId2); diff --git a/packages/mermaid/src/diagrams/git/gitGraphAst.js b/packages/mermaid/src/diagrams/git/gitGraphAst.js index dc48a8f4b..b1970ff64 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphAst.js +++ b/packages/mermaid/src/diagrams/git/gitGraphAst.js @@ -35,7 +35,7 @@ function getId() { // * @param currentCommit // * @param otherCommit // */ -// eslint-disable-next-line @cspell/spellchecker + // function isFastForwardable(currentCommit, otherCommit) { // log.debug('Entering isFastForwardable:', currentCommit.id, otherCommit.id); // let cnt = 0; diff --git a/packages/mermaid/src/diagrams/packet/renderer.ts b/packages/mermaid/src/diagrams/packet/renderer.ts index 84feb8c43..9e77fcc7c 100644 --- a/packages/mermaid/src/diagrams/packet/renderer.ts +++ b/packages/mermaid/src/diagrams/packet/renderer.ts @@ -5,7 +5,7 @@ import { selectSvgElement } from '../../rendering-util/selectSvgElement.js'; import { configureSvgSize } from '../../setupGraphViewbox.js'; import type { PacketDB, PacketWord } from './types.js'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars + const draw: DrawDefinition = (_text, id, _version, diagram: Diagram) => { const db = diagram.db as PacketDB; const config = db.getConfig(); diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index 42bacd5d6..d9fbb16c5 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -383,9 +383,11 @@ const drawMessage = async function (diagram, msgModel, lineStartY: number, diagO textObj.textMargin = conf.wrapPadding; textObj.tspan = false; - hasKatex(textObj.text) - ? await drawKatex(diagram, textObj, { startx, stopx, starty: lineStartY }) - : drawText(diagram, textObj); + if (hasKatex(textObj.text)) { + await drawKatex(diagram, textObj, { startx, stopx, starty: lineStartY }); + } else { + drawText(diagram, textObj); + } const textWidth = textDims.width; diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index a59b02688..ad81e9e0b 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -1,4 +1,5 @@ -import { defineConfig, MarkdownOptions } from 'vitepress'; +import type { MarkdownOptions } from 'vitepress'; +import { defineConfig } from 'vitepress'; import { version } from '../../../package.json'; import MermaidExample from './mermaid-markdown-all.js'; @@ -8,6 +9,7 @@ const allMarkdownTransformers: MarkdownOptions = { light: 'github-light', dark: 'github-dark', }, + // eslint-disable-next-line @typescript-eslint/no-misused-promises config: async (md) => { await MermaidExample(md); }, @@ -228,8 +230,6 @@ function sidebarNews() { /** * Return a string that puts together the pagePage, a '#', then the given id - * @param pagePath - * @param id * @returns the fully formed path */ function pathToId(pagePath: string, id = ''): string { diff --git a/packages/mermaid/src/docs/.vitepress/contributors.ts b/packages/mermaid/src/docs/.vitepress/contributors.ts index 93eeee2e2..e61cf57e8 100644 --- a/packages/mermaid/src/docs/.vitepress/contributors.ts +++ b/packages/mermaid/src/docs/.vitepress/contributors.ts @@ -1,5 +1,6 @@ import contributorUsernamesJson from './contributor-names.json'; -import { CoreTeam, knut, plainTeamMembers } from './teamMembers.js'; +import type { CoreTeam } from './teamMembers.js'; +import { knut, plainTeamMembers } from './teamMembers.js'; const contributorUsernames: string[] = contributorUsernamesJson; diff --git a/packages/mermaid/src/docs/.vitepress/scripts/fetch-avatars.ts b/packages/mermaid/src/docs/.vitepress/scripts/fetch-avatars.ts index cd78be782..23c359444 100644 --- a/packages/mermaid/src/docs/.vitepress/scripts/fetch-avatars.ts +++ b/packages/mermaid/src/docs/.vitepress/scripts/fetch-avatars.ts @@ -32,11 +32,11 @@ async function fetchAvatars() { }); contributors = JSON.parse(await readFile(pathContributors, { encoding: 'utf-8' })); - let avatars = contributors.map((name) => { - download(`https://github.com/${name}.png?size=100`, getAvatarPath(name)); - }); + const avatars = contributors.map((name) => + download(`https://github.com/${name}.png?size=100`, getAvatarPath(name)) + ); await Promise.allSettled(avatars); } -fetchAvatars(); +void fetchAvatars(); diff --git a/packages/mermaid/src/docs/.vitepress/scripts/fetch-contributors.ts b/packages/mermaid/src/docs/.vitepress/scripts/fetch-contributors.ts index da7621b29..54144cf62 100644 --- a/packages/mermaid/src/docs/.vitepress/scripts/fetch-contributors.ts +++ b/packages/mermaid/src/docs/.vitepress/scripts/fetch-contributors.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ // Adapted from https://github.dev/vitest-dev/vitest/blob/991ff33ab717caee85ef6cbe1c16dc514186b4cc/scripts/update-contributors.ts#L6 import { writeFile } from 'node:fs/promises'; diff --git a/packages/mermaid/src/docs/.vitepress/teamMembers.ts b/packages/mermaid/src/docs/.vitepress/teamMembers.ts index d95f49ed8..e307b81c4 100644 --- a/packages/mermaid/src/docs/.vitepress/teamMembers.ts +++ b/packages/mermaid/src/docs/.vitepress/teamMembers.ts @@ -1,3 +1,4 @@ +/* eslint-disable @cspell/spellchecker */ export interface Contributor { name: string; avatar: string; diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts index 3ebb7614a..dae9fd8ff 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -1,14 +1,16 @@ +/* eslint-disable no-console */ import DefaultTheme from 'vitepress/theme'; import './custom.css'; -// @ts-ignore +// @ts-ignore Type not available import Mermaid from './Mermaid.vue'; -// @ts-ignore +// @ts-ignore Type not available import Contributors from '../components/Contributors.vue'; -// @ts-ignore +// @ts-ignore Type not available import HomePage from '../components/HomePage.vue'; -// @ts-ignore +// @ts-ignore Type not available import TopBar from '../components/TopBar.vue'; import { getRedirect } from './redirect.js'; +// @ts-ignore Type not available import { h } from 'vue'; import Theme from 'vitepress/theme'; import '../style/main.css'; diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts index 1b04e01d5..8283951ac 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.ts @@ -116,3 +116,5 @@ export const getRedirect = (url: URL): string | undefined => { return `${idRedirectMap[path]}.html${id ? `#${id}` : ''}`; } }; + +// cspell:ignore mermaidapi, breakingchanges, classdiagram, entityrelationshipdiagram, mermaidapi, mermaidcli, gettingstarted, syntaxreference, newdiagram, requirementdiagram, sequencediagram diff --git a/packages/mermaid/src/logger.ts b/packages/mermaid/src/logger.ts index 44b98315c..0cff617c3 100644 --- a/packages/mermaid/src/logger.ts +++ b/packages/mermaid/src/logger.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unused-vars */ -/* eslint-disable @typescript-eslint/no-empty-function */ + /* eslint-disable no-console */ import dayjs from 'dayjs'; diff --git a/packages/mermaid/src/preprocess.ts b/packages/mermaid/src/preprocess.ts index 6e386e744..10bc0adea 100644 --- a/packages/mermaid/src/preprocess.ts +++ b/packages/mermaid/src/preprocess.ts @@ -33,9 +33,7 @@ const processDirectives = (code: string) => { const initDirective = utils.detectInit(code) ?? {}; const wrapDirectives = utils.detectDirective(code, 'wrap'); if (Array.isArray(wrapDirectives)) { - initDirective.wrap = wrapDirectives.some(({ type }) => { - type === 'wrap'; - }); + initDirective.wrap = wrapDirectives.some(({ type }) => type === 'wrap'); } else if (wrapDirectives?.type === 'wrap') { initDirective.wrap = true; } diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index f49b1c38c..1dba4d227 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -777,7 +777,7 @@ export const entityDecode = function (html: string): string { // Escape HTML before decoding for HTML Entities html = escape(html).replace(/%26/g, '&').replace(/%23/g, '#').replace(/%3B/g, ';'); decoder.innerHTML = html; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + return unescape(decoder.textContent!); }; diff --git a/tests/webpack/src/index.js b/tests/webpack/src/index.js index e667cfc5d..dc5c253ba 100644 --- a/tests/webpack/src/index.js +++ b/tests/webpack/src/index.js @@ -1,5 +1,5 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable no-console */ +// eslint-disable-next-line @typescript-eslint/no-require-imports const mermaid = require('mermaid'); import mindmap from '@mermaid-js/mermaid-mindmap'; diff --git a/tests/webpack/webpack.config.js b/tests/webpack/webpack.config.js index 3c35a3922..2afc94374 100644 --- a/tests/webpack/webpack.config.js +++ b/tests/webpack/webpack.config.js @@ -1,4 +1,4 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires +// eslint-disable-next-line @typescript-eslint/no-require-imports const path = require('path'); module.exports = {