-
-
Notifications
You must be signed in to change notification settings - Fork 7.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: fix passing a single Node to mermaid.init() #3396
fix: fix passing a single Node to mermaid.init() #3396
Conversation
Passing a single Node to mermaid.init() results in an error, as it calls `new NodeList()`, which causes `TypeError: Illegal constructor`. See https://github.com/mermaid-js/mermaid/blob/5597cf45bf3c971fcd1fd35e303e418fe421c5c2/src/mermaid.ts#L73 If we instead use the `ArrayLike` interface, we can just use a simple array, instead of a NodeList. I've also added a basic test case, by mocking the `mermaidAPI.render()` function so it isn't called, as the d3 functions don't work in Node.JS. The mocks are a bit messy, since a) Jest doesn't fully support ESM yet, and b) mermaidAPI is frozen with `Object.freeze()`, but the mermaidAPI mocks work as long as we keep them simple. Fixes: c68ec54
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice catch!!
@aloisklink Hey Alios! You have done a couple of appreciated PRs lately. How about joining the mermaid core team? |
It's a bit weird that TypeScript didn't catch it, to be honest! Maybe I've got to open up an issue in their repos.
Hi @knsv, I don't mind. I don't really have much/any experience with DOM stuff, so I probably can't help much with anything about rendering, but I do have Node.JS experience. I'll probably be focusing more on @mermaid-js/mermaid-cli, since that's usually how I use mermaid, so I'm not sure how much time I'll have for the core mermaid library, but I'd still be happy to help out 😄! (and I'll be honest, with how much I use mermaid, I probably should be helping out!) I'm on the Mermaid Slack, so I'll send you a private message on that for more details. |
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [mermaid](https://github.com/mermaid-js/mermaid) | [`9.1.7` -> `9.2.2`](https://renovatebot.com/diffs/npm/mermaid/9.1.7/9.2.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mermaid-js/mermaid</summary> ### [`v9.2.2`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.2): 9.2.2 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.2.1...v9.2.2) #### What's Changed - \[9.2] fix(mermaid): fix `mermaid.render` types by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3768](https://github.com/mermaid-js/mermaid/pull/3768) - \[9.2] fix(mermaid): default mermaid back to CommonJS by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3767](https://github.com/mermaid-js/mermaid/pull/3767) - Fix lazy loading in webpack by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3774](https://github.com/mermaid-js/mermaid/pull/3774) **Full Changelog**: mermaid-js/mermaid@v9.2.1...v9.2.2 ### [`v9.2.1`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.1): 9.2.1 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.2.0...v9.2.1) #### What's Changed - \~~fix [#​3757](https://github.com/mermaid-js/mermaid/issues/3757) : Remove dynamic imports for lazy load causing issues for webpack~~ - chore: Update bug report template by [@​gibson042](https://github.com/gibson042) in [https://github.com/mermaid-js/mermaid/pull/3727](https://github.com/mermaid-js/mermaid/pull/3727) - Use issue templates and add diagram, theme and syntax proposal issue forms by [@​Andre601](https://github.com/Andre601) in [https://github.com/mermaid-js/mermaid/pull/2739](https://github.com/mermaid-js/mermaid/pull/2739) #### New Contributors - [@​Andre601](https://github.com/Andre601) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/2739](https://github.com/mermaid-js/mermaid/pull/2739) **Full Changelog**: mermaid-js/mermaid@v9.2.0...v9.2.1 ### [`v9.2.0`](https://github.com/mermaid-js/mermaid/releases/tag/v9.2.0): 9.2.0 [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.1.7...v9.2.0) #### What's Changed ##### Features - Mindmaps by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3410](https://github.com/mermaid-js/mermaid/pull/3410) - Introducing TypeScript by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3336](https://github.com/mermaid-js/mermaid/pull/3336) - Auto transform `mermaid-example` in docs. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3401](https://github.com/mermaid-js/mermaid/pull/3401) - Creating detectors and moving out diagram specific code from the diag… by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3436](https://github.com/mermaid-js/mermaid/pull/3436) - feat(git): cherry-pick keyword supports tag attribute by [@​elliot-nelson](https://github.com/elliot-nelson) in [https://github.com/mermaid-js/mermaid/pull/3479](https://github.com/mermaid-js/mermaid/pull/3479) - Mindmaps replacing rendering algoritm with cose-bilkent by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3559](https://github.com/mermaid-js/mermaid/pull/3559) - 3561 theme color scales by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3562](https://github.com/mermaid-js/mermaid/pull/3562) - ESBuild by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3386](https://github.com/mermaid-js/mermaid/pull/3386) - (Beta) Lazy load import by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3592](https://github.com/mermaid-js/mermaid/pull/3592), [https://github.com/mermaid-js/mermaid/pull/3598](https://github.com/mermaid-js/mermaid/pull/3598) - 3061 making a monorepo by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3531](https://github.com/mermaid-js/mermaid/pull/3531) ##### Fixes - Feature decimal duration in second for gantt diagram by [@​vallsv](https://github.com/vallsv) in [https://github.com/mermaid-js/mermaid/pull/3360](https://github.com/mermaid-js/mermaid/pull/3360) - fix: fix passing a single Node to mermaid.init() by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3396](https://github.com/mermaid-js/mermaid/pull/3396) - fix [#​3407](https://github.com/mermaid-js/mermaid/issues/3407) Replace `div` with `pre` and format by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3408](https://github.com/mermaid-js/mermaid/pull/3408) - fix(git): support numeric branch names by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3392](https://github.com/mermaid-js/mermaid/pull/3392) - Add tests for C4 system context macros by [@​dbartholomae](https://github.com/dbartholomae) in [https://github.com/mermaid-js/mermaid/pull/3367](https://github.com/mermaid-js/mermaid/pull/3367) - Add nested test for parseGenericTypes by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3354](https://github.com/mermaid-js/mermaid/pull/3354) - Fix memoize by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3434](https://github.com/mermaid-js/mermaid/pull/3434) - fix(git): support single character branch names by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3464](https://github.com/mermaid-js/mermaid/pull/3464) - Replace GoogleAnalytics with Plausible by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3466](https://github.com/mermaid-js/mermaid/pull/3466) - Fix for issues in errorhandling and class diagrams after refactoring by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3470](https://github.com/mermaid-js/mermaid/pull/3470) - 3409 Fix for truncated tags in GitGraph by [@​ashishjain0512](https://github.com/ashishjain0512) in [https://github.com/mermaid-js/mermaid/pull/3454](https://github.com/mermaid-js/mermaid/pull/3454) - Fix broken cherry-pick parsing in gitgraph by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3480](https://github.com/mermaid-js/mermaid/pull/3480) - Fix CI `docs:lint` by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3493](https://github.com/mermaid-js/mermaid/pull/3493) - Fix user-journey leaking css by [@​lishid](https://github.com/lishid) in [https://github.com/mermaid-js/mermaid/pull/3510](https://github.com/mermaid-js/mermaid/pull/3510) - \[sequenceDiagrams] Support dashes in participant names by [@​ashleybartlett](https://github.com/ashleybartlett) in [https://github.com/mermaid-js/mermaid/pull/3524](https://github.com/mermaid-js/mermaid/pull/3524) - fix: ER dark theme attribute colors by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3512](https://github.com/mermaid-js/mermaid/pull/3512) - feat: ER diagram: allow other chars in a quoted entity name by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3516](https://github.com/mermaid-js/mermaid/pull/3516) - Arrow tip aligned to edge of box by [@​pbrolin47](https://github.com/pbrolin47) in [https://github.com/mermaid-js/mermaid/pull/3533](https://github.com/mermaid-js/mermaid/pull/3533) - Fixed labelText undefined behavior by [@​AndrewL-64](https://github.com/AndrewL-64) in [https://github.com/mermaid-js/mermaid/pull/3544](https://github.com/mermaid-js/mermaid/pull/3544) - Fix failing vitest unit tests by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3587](https://github.com/mermaid-js/mermaid/pull/3587) - fix: Import diagram by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3589](https://github.com/mermaid-js/mermaid/pull/3589) - Fix file name during "pnpm run dev" script by [@​vallsv](https://github.com/vallsv) in [https://github.com/mermaid-js/mermaid/pull/3608](https://github.com/mermaid-js/mermaid/pull/3608) - fix Detect diagram fallback by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3591](https://github.com/mermaid-js/mermaid/pull/3591) - fix: Dirty fix for sync render. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3633](https://github.com/mermaid-js/mermaid/pull/3633) - fix: Converts mindmapDB to TS by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3683](https://github.com/mermaid-js/mermaid/pull/3683) - Support `lazyLoadedDiagrams` when calling `initThrowsErrors` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3702](https://github.com/mermaid-js/mermaid/pull/3702) - \[9.2.0] Support `lazyLoadedDiagrams` when calling `initThrowsErrorsAsync` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3731](https://github.com/mermaid-js/mermaid/pull/3731) ##### Chores - build: run `build:prod` on `yarn prepare` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3404](https://github.com/mermaid-js/mermaid/pull/3404) - chore(deps-dev): bump [@​types/dompurify](https://github.com/types/dompurify) from 2.3.3 to 2.3.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3414](https://github.com/mermaid-js/mermaid/pull/3414) - chore(deps-dev): bump jest-environment-jsdom from 29.0.1 to 29.0.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3413](https://github.com/mermaid-js/mermaid/pull/3413) - chore(deps-dev): bump typescript from 4.7.4 to 4.8.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3411](https://github.com/mermaid-js/mermaid/pull/3411) - chore(deps-dev): bump babel-jest from 29.0.1 to 29.0.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3412](https://github.com/mermaid-js/mermaid/pull/3412) - chore: fix JSDOC [@​param](https://github.com/param), [@​returns](https://github.com/returns) lint errors by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3422](https://github.com/mermaid-js/mermaid/pull/3422) - style: forbid using `console` in mermaid src code by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3405](https://github.com/mermaid-js/mermaid/pull/3405) - Introduce stricter typescript linting by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3393](https://github.com/mermaid-js/mermaid/pull/3393) - Esbuild: backwards-compatible `mermaid.core.mjs` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3437](https://github.com/mermaid-js/mermaid/pull/3437) - fix(git): support unusual prefixes in branch name by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3438](https://github.com/mermaid-js/mermaid/pull/3438) - Re-enable coverage upload to coveralls by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3431](https://github.com/mermaid-js/mermaid/pull/3431) - chore(deps): bump actions/checkout from 2 to 3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3449](https://github.com/mermaid-js/mermaid/pull/3449) - chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3446](https://github.com/mermaid-js/mermaid/pull/3446) - chore(deps-dev): bump eslint from 8.23.0 to 8.23.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3440](https://github.com/mermaid-js/mermaid/pull/3440) - chore(deps-dev): bump babel-jest from 29.0.2 to 29.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3448](https://github.com/mermaid-js/mermaid/pull/3448) - chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3441](https://github.com/mermaid-js/mermaid/pull/3441) - chore(deps-dev): bump [@​babel/core](https://github.com/babel/core) from 7.18.13 to 7.19.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3447](https://github.com/mermaid-js/mermaid/pull/3447) - chore(deps-dev): bump [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) from 5.36.1 to 5.37.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3451](https://github.com/mermaid-js/mermaid/pull/3451) - chore(deps-dev): bump [@​babel/preset-env](https://github.com/babel/preset-env) from 7.18.10 to 7.19.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3442](https://github.com/mermaid-js/mermaid/pull/3442) - chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3445](https://github.com/mermaid-js/mermaid/pull/3445) - chore(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 5.36.1 to 5.37.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3457](https://github.com/mermaid-js/mermaid/pull/3457) - chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3458](https://github.com/mermaid-js/mermaid/pull/3458) - Cleanup & fix eslint warnings by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3453](https://github.com/mermaid-js/mermaid/pull/3453) - chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3450](https://github.com/mermaid-js/mermaid/pull/3450) - chore(deps): bump stylis from 4.1.1 to 4.1.2 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3439](https://github.com/mermaid-js/mermaid/pull/3439) - chore(deps): bump dompurify from 2.3.10 to 2.4.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3444](https://github.com/mermaid-js/mermaid/pull/3444) - chore(deps-dev): bump [@​types/lodash](https://github.com/types/lodash) from 4.14.184 to 4.14.185 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3489](https://github.com/mermaid-js/mermaid/pull/3489) - chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3490](https://github.com/mermaid-js/mermaid/pull/3490) - chore(deps-dev): bump eslint from 8.23.1 to 8.24.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3521](https://github.com/mermaid-js/mermaid/pull/3521) - chore(deps-dev): bump [@​types/prettier](https://github.com/types/prettier) from 2.7.0 to 2.7.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3520](https://github.com/mermaid-js/mermaid/pull/3520) - chore: fix demo chart pages by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3523](https://github.com/mermaid-js/mermaid/pull/3523) - Vitest by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3427](https://github.com/mermaid-js/mermaid/pull/3427) - Build mermaid using Vite by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3503](https://github.com/mermaid-js/mermaid/pull/3503) - Add "Debug Current Test File" configuration for VSCode by [@​pje](https://github.com/pje) in [https://github.com/mermaid-js/mermaid/pull/3509](https://github.com/mermaid-js/mermaid/pull/3509) - \[DevOps] Parallel E2E by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3498](https://github.com/mermaid-js/mermaid/pull/3498) - chore(deps-dev): update lint-staged requirement from ^13.0.0 to ^13.0.3 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3551](https://github.com/mermaid-js/mermaid/pull/3551) - chore(deps-dev): update start-server-and-test requirement from ^1.12.6 to ^1.14.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3553](https://github.com/mermaid-js/mermaid/pull/3553) - chore(deps-dev): update jsdom requirement from ^20.0.0 to ^20.0.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3552](https://github.com/mermaid-js/mermaid/pull/3552) - chore(deps-dev): update [@​types/express](https://github.com/types/express) requirement from ^4.17.13 to ^4.17.14 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3555](https://github.com/mermaid-js/mermaid/pull/3555) - chore(deps-dev): update [@​types/lodash](https://github.com/types/lodash) requirement from ^4.14.185 to ^4.14.186 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3556](https://github.com/mermaid-js/mermaid/pull/3556) - chore(deps-dev): update vitest requirement from ^0.23.1 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3557](https://github.com/mermaid-js/mermaid/pull/3557) - chore(deps-dev): update husky requirement from ^8.0.0 to ^8.0.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3558](https://github.com/mermaid-js/mermaid/pull/3558) - chore(deps-dev): update [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) requirement from ^5.37.0 to ^5.39.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3564](https://github.com/mermaid-js/mermaid/pull/3564) - chore(deps-dev): update [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) requirement from ^5.37.0 to ^5.39.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3565](https://github.com/mermaid-js/mermaid/pull/3565) - chore(deps): update [@​types/node](https://github.com/types/node) requirement from ^18.7.21 to ^18.8.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3566](https://github.com/mermaid-js/mermaid/pull/3566) - chore(deps-dev): update [@​vitest/coverage-c8](https://github.com/vitest/coverage-c8) requirement from ^0.23.2 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3567](https://github.com/mermaid-js/mermaid/pull/3567) - chore(deps-dev): update esbuild requirement from ^0.15.8 to ^0.15.10 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3569](https://github.com/mermaid-js/mermaid/pull/3569) - chore(deps-dev): update typescript requirement from ^4.8.3 to ^4.8.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3573](https://github.com/mermaid-js/mermaid/pull/3573) - chore(deps-dev): update [@​applitools/eyes-cypress](https://github.com/applitools/eyes-cypress) requirement from ^3.25.7 to ^3.27.1 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3568](https://github.com/mermaid-js/mermaid/pull/3568) - chore(deps-dev): update vite requirement from ^3.0.9 to ^3.1.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3570](https://github.com/mermaid-js/mermaid/pull/3570) - chore(deps-dev): update eslint-plugin-jest requirement from ^27.0.4 to ^27.1.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3571](https://github.com/mermaid-js/mermaid/pull/3571) - chore(deps-dev): update [@​commitlint/config-conventional](https://github.com/commitlint/config-conventional) requirement from ^17.0.0 to ^17.1.0 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3572](https://github.com/mermaid-js/mermaid/pull/3572) - Fix `docs:build` and `docs:verify` scripts by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3534](https://github.com/mermaid-js/mermaid/pull/3534) - Fix husky `pre-commit` rules by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3536](https://github.com/mermaid-js/mermaid/pull/3536) - Fix typos in README.md by [@​elv-nate](https://github.com/elv-nate) in [https://github.com/mermaid-js/mermaid/pull/3538](https://github.com/mermaid-js/mermaid/pull/3538) - fix(tests): E2E by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3574](https://github.com/mermaid-js/mermaid/pull/3574) - fix: pnpm clean in windows by [@​arpansaha13](https://github.com/arpansaha13) in [https://github.com/mermaid-js/mermaid/pull/3595](https://github.com/mermaid-js/mermaid/pull/3595) - Update Cypress to v10 and fix E2E errors by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3459](https://github.com/mermaid-js/mermaid/pull/3459) - ci(e2e-applitols): add applitools CI action by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3483](https://github.com/mermaid-js/mermaid/pull/3483) - Remove webpack & babel by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3452](https://github.com/mermaid-js/mermaid/pull/3452) - Add vitepress plugin by [@​emersonbottero](https://github.com/emersonbottero) in [https://github.com/mermaid-js/mermaid/pull/3476](https://github.com/mermaid-js/mermaid/pull/3476) - ci(e2e): fix e2e action when running from fork by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3519](https://github.com/mermaid-js/mermaid/pull/3519) - chore(deps-dev): update [@​vitest/ui](https://github.com/vitest/ui) requirement from ^0.23.2 to ^0.23.4 by [@​dependabot](https://github.com/dependabot) in [https://github.com/mermaid-js/mermaid/pull/3549](https://github.com/mermaid-js/mermaid/pull/3549) - chore: Update demo diagrams for monorepo by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3545](https://github.com/mermaid-js/mermaid/pull/3545) - Sync `docs/` with `packages/mermaid/src/docs` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3586](https://github.com/mermaid-js/mermaid/pull/3586) - chore: Add volta by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3628](https://github.com/mermaid-js/mermaid/pull/3628) - chore: Node 18 by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3630](https://github.com/mermaid-js/mermaid/pull/3630) - Configure Renovate by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3627](https://github.com/mermaid-js/mermaid/pull/3627) ##### Docs - Added mermerd to integrations documentation by [@​KarnerTh](https://github.com/KarnerTh) in [https://github.com/mermaid-js/mermaid/pull/3399](https://github.com/mermaid-js/mermaid/pull/3399) - Fix typo in documentation by [@​dbartholomae](https://github.com/dbartholomae) in [https://github.com/mermaid-js/mermaid/pull/3403](https://github.com/mermaid-js/mermaid/pull/3403) - Update duplicate copy pasted directive description by [@​mrmanc](https://github.com/mrmanc) in [https://github.com/mermaid-js/mermaid/pull/3415](https://github.com/mermaid-js/mermaid/pull/3415) - Docs/bug 3417 by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3419](https://github.com/mermaid-js/mermaid/pull/3419) - Docs: add '..auto generated..' to .html documentation files by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3420](https://github.com/mermaid-js/mermaid/pull/3420) - Mention obsidian has native support for mermaid by [@​IanLee1521](https://github.com/IanLee1521) in [https://github.com/mermaid-js/mermaid/pull/3513](https://github.com/mermaid-js/mermaid/pull/3513) - docs: replace `yarn` with `pnpm` in dev guide by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3535](https://github.com/mermaid-js/mermaid/pull/3535) - Corrected theme variables reference table layout by [@​marcastel](https://github.com/marcastel) in [https://github.com/mermaid-js/mermaid/pull/3541](https://github.com/mermaid-js/mermaid/pull/3541) - Working New Documentation Vitepress by [@​emersonbottero](https://github.com/emersonbottero) in [https://github.com/mermaid-js/mermaid/pull/3515](https://github.com/mermaid-js/mermaid/pull/3515) - CODE_OF_CONDUCT Uploaded by [@​swoyam2609](https://github.com/swoyam2609) in [https://github.com/mermaid-js/mermaid/pull/3578](https://github.com/mermaid-js/mermaid/pull/3578) - Automated docs spell-checking via GitHub Actions (and address all reported issues) by [@​SeanKilleen](https://github.com/SeanKilleen) in [https://github.com/mermaid-js/mermaid/pull/3600](https://github.com/mermaid-js/mermaid/pull/3600) - docs:Improved keywords in index.html by [@​aryandeelwal](https://github.com/aryandeelwal) in [https://github.com/mermaid-js/mermaid/pull/3579](https://github.com/mermaid-js/mermaid/pull/3579) - Contribution.md updates by [@​Aniket1026](https://github.com/Aniket1026) in [https://github.com/mermaid-js/mermaid/pull/3614](https://github.com/mermaid-js/mermaid/pull/3614) - docs: Add mermaid version to script URL by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3596](https://github.com/mermaid-js/mermaid/pull/3596) #### New Contributors - [@​KarnerTh](https://github.com/KarnerTh) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3399](https://github.com/mermaid-js/mermaid/pull/3399) - [@​mrmanc](https://github.com/mrmanc) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3415](https://github.com/mermaid-js/mermaid/pull/3415) - [@​elliot-nelson](https://github.com/elliot-nelson) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3479](https://github.com/mermaid-js/mermaid/pull/3479) - [@​emersonbottero](https://github.com/emersonbottero) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3476](https://github.com/mermaid-js/mermaid/pull/3476) - [@​pje](https://github.com/pje) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3509](https://github.com/mermaid-js/mermaid/pull/3509) - [@​IanLee1521](https://github.com/IanLee1521) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3513](https://github.com/mermaid-js/mermaid/pull/3513) - [@​ashleybartlett](https://github.com/ashleybartlett) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3524](https://github.com/mermaid-js/mermaid/pull/3524) - [@​pbrolin47](https://github.com/pbrolin47) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3533](https://github.com/mermaid-js/mermaid/pull/3533) - [@​elv-nate](https://github.com/elv-nate) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3538](https://github.com/mermaid-js/mermaid/pull/3538) - [@​marcastel](https://github.com/marcastel) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3541](https://github.com/mermaid-js/mermaid/pull/3541) - [@​AndrewL-64](https://github.com/AndrewL-64) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3544](https://github.com/mermaid-js/mermaid/pull/3544) - [@​swoyam2609](https://github.com/swoyam2609) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3578](https://github.com/mermaid-js/mermaid/pull/3578) - [@​SeanKilleen](https://github.com/SeanKilleen) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3600](https://github.com/mermaid-js/mermaid/pull/3600) - [@​aryandeelwal](https://github.com/aryandeelwal) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3579](https://github.com/mermaid-js/mermaid/pull/3579) - [@​Aniket1026](https://github.com/Aniket1026) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3614](https://github.com/mermaid-js/mermaid/pull/3614) **Full Changelog**: mermaid-js/mermaid@v9.1.7...v9.2.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [x] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/BirthdayResearch/contented). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMi4wIiwidXBkYXRlZEluVmVyIjoiMzQuMTkuMCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
📑 Summary
Passing a single Node to
mermaid.init()
results in an error, as it callsnew NodeList()
, which causesTypeError: Illegal constructor
.See
mermaid/src/mermaid.ts
Line 73 in 5597cf4
If we instead use the
ArrayLike
interface, we can just use a simple array, instead of a NodeList.Fixes: c68ec54
📏 Design Decisions
I've also added a basic test case (took me a long time to figure out how it would work), by mocking the
mermaidAPI.render()
function so it isn't called, as the d3 functions don't work in Node.JS. The mocks are a bit messy, sinceObject.freeze()
,but the mermaidAPI mocks work as long as we keep them simple.
P.S. Congrats on the start of the migration to TypeScript, @sidharthv96, and all other contributors/reviewers! 🥳 🚀
📋 Tasks
Make sure you
develop
branch