From 827b3d47b7a36a642bd96d78732e3a392b1389c8 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 20 Sep 2022 21:14:56 +0530 Subject: [PATCH] Add `type: module` to package.json --- .esbuild/jisonTransformer.cjs | 14 ++++++++++++++ .esbuild/util.cjs | 6 ++---- package.json | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 .esbuild/jisonTransformer.cjs diff --git a/.esbuild/jisonTransformer.cjs b/.esbuild/jisonTransformer.cjs new file mode 100644 index 000000000..5f89c6647 --- /dev/null +++ b/.esbuild/jisonTransformer.cjs @@ -0,0 +1,14 @@ +const { Generator } = require('jison'); +exports.transformJison = (src) => { + const parser = new Generator(src, { + moduleType: 'js', + 'token-stack': true, + }); + const source = parser.generate({ moduleMain: '() => {}' }); + const exporter = ` + parser.parser = parser; + export { parser }; + export default parser; + `; + return `${source} ${exporter}`; +}; diff --git a/.esbuild/util.cjs b/.esbuild/util.cjs index d9b783747..1d16f66d9 100644 --- a/.esbuild/util.cjs +++ b/.esbuild/util.cjs @@ -1,4 +1,4 @@ -const { Generator } = require('jison'); +const { transformJison } = require('./jisonTransformer.cjs'); const fs = require('fs'); const { dependencies } = require('../package.json'); @@ -93,9 +93,7 @@ const jisonPlugin = { build.onLoad({ filter: /\.jison$/ }, async (args) => { // Load the file from the file system const source = await fs.promises.readFile(args.path, 'utf8'); - const contents = new Generator(source, { 'token-stack': true }).generate({ - moduleMain: '() => {}', // disable moduleMain (default one requires Node.JS modules) - }); + const contents = transformJison(source); return { contents, warnings: [] }; }); }, diff --git a/package.json b/package.json index 5b681f04d..cca0eb2a2 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "dist/mermaid.core.mjs", "module": "dist/mermaid.core.mjs", "types": "dist/mermaid.d.ts", + "type": "module", "exports": { ".": { "require": "./dist/mermaid.min.js",