diff --git a/.esbuild/esbuild.cjs b/.esbuild/esbuild.cjs index 29b144e55..5cdee62c7 100644 --- a/.esbuild/esbuild.cjs +++ b/.esbuild/esbuild.cjs @@ -5,9 +5,10 @@ const handler = (e) => { console.error(e); process.exit(1); }; +const watch = process.argv.includes('--watch'); -build(esmBuild({ minify: false })).catch(handler); -build(umdBuild({ minify: false })).catch(handler); +build(umdBuild({ minify: false, watch })).catch(handler); +build(esmBuild({ minify: false, watch })).catch(handler); build(esmBuild()).catch(handler); build(umdBuild()).catch(handler); diff --git a/.esbuild/util.cjs b/.esbuild/util.cjs index b5fcfdd7a..3765242c3 100644 --- a/.esbuild/util.cjs +++ b/.esbuild/util.cjs @@ -22,16 +22,27 @@ const buildOptions = (override = {}) => { }; }; -exports.esmBuild = ({ minify = true } = {}) => { +/** + * @param {Options} override + * @returns {Options} + */ +exports.esmBuild = (override = { minify: true }) => { return buildOptions({ format: 'esm', - outfile: `dist/mermaid.esm${minify ? '.min' : ''}.mjs`, - minify, + outfile: `dist/mermaid.esm${override.minify ? '.min' : ''}.mjs`, + ...override, }); }; -exports.umdBuild = ({ minify = true } = {}) => { - return buildOptions({ outfile: `dist/mermaid${minify ? '.min' : ''}.js`, minify }); +/** + * @param {Options} override + * @returns {Options} + */ +exports.umdBuild = (override = { minify: true }) => { + return buildOptions({ + outfile: `dist/mermaid${override.minify ? '.min' : ''}.js`, + ...override, + }); }; const jisonPlugin = { diff --git a/package.json b/package.json index 46daf9e16..10520392c 100644 --- a/package.json +++ b/package.json @@ -23,12 +23,12 @@ "git graph" ], "scripts": { - "build:fast": "rm -rf dist; node .esbuild/esbuild.cjs; tsc --emitDeclarationOnly", - "build:dev": "webpack --mode development --progress --color", - "build:prod": "webpack --mode production --progress --color", - "build": "concurrently \"yarn build:dev\" \"yarn build:prod\"", + "clean": "rimraf dist", + "build:code": "node .esbuild/esbuild.cjs", + "build:types": "tsc -p ./tsconfig.json --emitDeclarationOnly", + "build": "yarn clean; concurrently \"yarn build:code\" \"yarn build:types\"", "postbuild": "documentation build src/mermaidAPI.ts src/config.ts src/defaultConfig.ts --shallow -f md --markdown-toc false > docs/Setup.md", - "build:watch": "yarn build:dev --watch", + "build:watch": "yarn build:code --watch", "release": "yarn build", "lint": "eslint --cache ./ --ext .js,.json,.html,.md", "lint:fix": "yarn lint --fix", @@ -114,6 +114,7 @@ "path-browserify": "^1.0.1", "prettier": "^2.3.2", "prettier-plugin-jsdoc": "^0.3.30", + "rimraf": "^3.0.2", "start-server-and-test": "^1.12.6", "terser-webpack-plugin": "^5.3.6", "ts-jest": "^28.0.8", diff --git a/src/diagrams/flowchart/parser/flow.jison b/src/diagrams/flowchart/parser/flow.jison index 15447dab6..e459a23d0 100644 --- a/src/diagrams/flowchart/parser/flow.jison +++ b/src/diagrams/flowchart/parser/flow.jison @@ -271,7 +271,7 @@ document { $$ = [];} | document line { - if($2 !== []){ + if(Array.isArray($2) && $2.length > 0){ $1.push($2); } $$=$1;} diff --git a/tsconfig.json b/tsconfig.json index f3a860e32..8acf035d7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ /* Visit https://aka.ms/tsconfig.json to read more about this file */ /* Projects */ - "incremental": true /* Enable incremental compilation */, + // "incremental": true /* Enable incremental compilation */, // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */