Registry / prod / mscgenjs

mscgenjs

JSON →
library8.0.0jsnpmunverified

JavaScript library for parsing and rendering MscGen, Xù, and MsGenny sequence diagrams to SVG, GraphViz dot, Doxygen, and JSON. Current stable version: 8.0.0. Release cadence: irregular, with major version bumps for breaking changes. Key differentiators: supports three diagram languages (MscGen, Xù, MsGenny), runs in browsers and Node.js (with jsdom), provides both CommonJS and ESM modules. Requires a DOM environment (browser, electron, or jsdom).

npm install mscgenjs
INSTALL
IMPORT
SIG · MSCGENJS
M
mscgenjs
prodjavascriptv8.0.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

renderMsc
import { renderMsc } from 'mscgenjs'
const renderMsc = require('mscgenjs');
default export is an object, named exports like renderMsc exist only in ESM
mscgenjs
const mscgenjs = require('mscgenjs');
import mscgenjs from 'mscgenjs';
CommonJS require works, but the default export is an object; named imports are not available in CJS
renderMsc
const { renderMsc } = require('mscgenjs');
const mscgenjs = require('mscgenjs').renderMsc;
destructuring require is correct for CJS; direct property access works but not as import

Renders a simple MscGen diagram to SVG in Node.js using jsdom for DOM simulation.

import { renderMsc } from 'mscgenjs'; import { JSDOM } from 'jsdom'; const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>'); global.document = dom.window.document; global.window = dom.window; const mscScript = ` msc { a->b: hello; } `; renderMsc(mscScript, { window: dom.window }).then(svg => { console.log(svg); }).catch(err => { console.error(err); });
Debug
Known issues
breakingmscgenjs v8.0.0 dropped support for Node.js 18 and older; requires Node.js ^20||^22||>=24
fix
Upgrade Node.js to version 20, 22, or 24+
affects: >=8.0.0
gotchamscgenjs requires a DOM environment; does not work in plain Node.js without jsdom or browser
fix
Use jsdom or run in a browser context. For Node.js: install jsdom and pass window option to renderMsc
affects: >=1.0.0
gotchaDefault export is an object, not a function. Named imports may not work with some bundlers
fix
Use `import { renderMsc } from 'mscgenjs'` with ESM, or `const mscgenjs = require('mscgenjs')` with CJS
affects: >=5.0.0
breakingv6.0.0 removed webpack-issue-5316-workaround, require('mscgenjs') now works natively
fix
Remove any workaround imports; use standard require or import
affects: >=6.0.0
Errors
Common errors & fixes
ReferenceError: document is not defined
Trying to use mscgenjs in Node.js without a DOM implementation
fix
Install jsdom and set global.document and global.window before calling renderMsc
TypeError: mscgenjs.renderMsc is not a function
Using default import (import mscgenjs from 'mscgenjs') expecting named export on the default
fix
Use import { renderMsc } from 'mscgenjs' or const { renderMsc } = require('mscgenjs')
Module not found: Error: Can't resolve 'mscgenjs'
Package not installed or bundler unable to resolve module
fix
Run `npm install mscgenjs` and ensure package.json includes it as a dependency
Upgrade
Version history
8.0.0latest on npm
Audit
Dependencies
jsdomoptionalrequired in Node.js environments to provide a DOM implementation
Agent activity
4 hits · last 30 days
node
4
Resources
mscgenjs — npm install mscgenjs · libregistry