From e06a7587acf73a552fa616dc613044a7be6948fa Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 2 Sep 2022 09:27:25 +0530 Subject: [PATCH] Vite --- demos/index.html | 4 +-- jison.js | 84 ++++++++++++++++++++++++++++++++---------------- vite.config.js | 2 +- 3 files changed, 60 insertions(+), 30 deletions(-) diff --git a/demos/index.html b/demos/index.html index 904fde7df..46549c95a 100644 --- a/demos/index.html +++ b/demos/index.html @@ -15,9 +15,9 @@ -
+
diff --git a/jison.js b/jison.js index b23c4c2d3..b907fae6f 100644 --- a/jison.js +++ b/jison.js @@ -1,31 +1,61 @@ -import { Jison } from 'jison'; -import { createFilter } from 'rollup-pluginutils'; +const Jison = require('jison'); +const fileRegex = /\.(jison)$/; -export default (options = {}) => ({ - name: 'jison', - transform(grammar, id) { - const { include = ['*.jison', '**/*.jison'], exclude, type = 'lalr' } = options; - const filter = createFilter(include, exclude); - if (!filter(id)) return null; +export default function jison() { + return { + name: 'jison', - const parser = new Jison.Generator(grammar, { - moduleType: 'js', - type, - }); + transform(src, id) { + if (fileRegex.test(id)) { + const parser = new Jison.Generator(src, { + moduleType: 'js', + // type, + }); + const source = parser.generate(); + const exporter = ` + const parse = parser.parse.bind(parser); + parser.parser = parse; - const source = parser.generate(); - const exporter = ` - const parse = parser.parse.bind(parser); - parser.parser = parse; - - export { parser }; - export default parser; - `; + export { parser }; + export default parser; + `; - console.log('helll'); - return { - code: `${source} ${exporter}`, - map: { mappings: '' }, - }; - }, -}); + // console.log('helll'); + + return { + code: `${source} ${exporter}`, + map: null, // provide source map if available + }; + } + }, + }; +} + +// export default (options = {}) => ({ +// name: 'jison', +// transform(grammar, id) { +// const { include = ['*.jison', '**/*.jison'], exclude, type = 'lalr' } = options; +// const filter = createFilter(include, exclude); +// if (!filter(id)) return null; + +// const parser = new Jison.Generator(grammar, { +// moduleType: 'js', +// type, +// }); + +// const source = parser.generate(); +// const exporter = ` +// const parse = parser.parse.bind(parser); +// parser.parser = parse; + +// export { parser }; +// export default parser; +// `; + +// console.log('helll'); +// return { +// code: `${source} ${exporter}`, +// map: { mappings: '' }, +// }; +// }, +// }); diff --git a/vite.config.js b/vite.config.js index 97e88f887..89bc7e506 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,6 +2,7 @@ import { resolve } from 'path'; import { defineConfig } from 'vite'; import jison from './jison'; export default defineConfig({ + plugins: [jison()], resolve: { extensions: ['.ts', '.js', '.json', '.jison'], }, @@ -13,7 +14,6 @@ export default defineConfig({ fileName: 'mermaid', }, rollupOptions: { - plugins: [jison()], // make sure to externalize deps that shouldn't be bundled // into your library output: {