From f016ece2af2f90afaaf23af08258e2d8a868bdca Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sun, 12 Dec 2021 12:26:26 +0100 Subject: [PATCH] splitting query moved to web worker --- packages/web/package.json | 13 +++-- packages/web/rollup.config.js | 4 ++ packages/web/src/query/AceEditor.svelte | 61 ++++++++++++++++----- packages/web/src/query/QueryParserWorker.js | 6 ++ yarn.lock | 5 ++ 5 files changed, 68 insertions(+), 21 deletions(-) create mode 100644 packages/web/src/query/QueryParserWorker.js diff --git a/packages/web/package.json b/packages/web/package.json index 18ce6719b..3187a2c13 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -21,13 +21,17 @@ "@tsconfig/svelte": "^1.0.0", "ace-builds": "^1.4.8", "chart.js": "^3.6.0", + "chartjs-adapter-moment": "^1.0.0", "cross-env": "^7.0.3", "dbgate-datalib": "^4.1.1", - "dbgate-sqltree": "^4.1.1", "dbgate-query-splitter": "^4.1.1", + "dbgate-sqltree": "^4.1.1", "dbgate-tools": "^4.1.1", "dbgate-types": "^4.1.1", + "diff": "^5.0.0", + "diff2html": "^3.4.13", "file-selector": "^0.2.4", + "js-yaml": "^4.1.0", "json-stable-stringify": "^1.0.1", "localforage": "^1.9.0", "lodash": "^4.17.21", @@ -39,6 +43,7 @@ "rollup-plugin-livereload": "^2.0.0", "rollup-plugin-svelte": "^7.0.0", "rollup-plugin-terser": "^7.0.0", + "rollup-plugin-web-worker-loader": "^1.6.1", "sirv-cli": "^1.0.0", "socket.io-client": "^2.3.0", "sql-formatter": "^2.3.3", @@ -49,10 +54,6 @@ "svelte-select": "^3.17.0", "tslib": "^2.3.1", "typescript": "^4.4.3", - "uuid": "^3.4.0", - "chartjs-adapter-moment": "^1.0.0", - "diff": "^5.0.0", - "diff2html": "^3.4.13", - "js-yaml": "^4.1.0" + "uuid": "^3.4.0" } } diff --git a/packages/web/rollup.config.js b/packages/web/rollup.config.js index 19ab3d997..8d5f8db4c 100644 --- a/packages/web/rollup.config.js +++ b/packages/web/rollup.config.js @@ -7,8 +7,10 @@ import { terser } from 'rollup-plugin-terser'; import sveltePreprocess from 'svelte-preprocess'; import typescript from '@rollup/plugin-typescript'; import replace from '@rollup/plugin-replace'; +import webWorkerLoader from 'rollup-plugin-web-worker-loader'; import css from 'rollup-plugin-css-only'; + const production = !process.env.ROLLUP_WATCH; function serve() { @@ -99,6 +101,8 @@ export default { // If we're building for production (npm run build // instead of npm run dev), minify production && terser(), + + webWorkerLoader(), ], watch: { clearScreen: false, diff --git a/packages/web/src/query/AceEditor.svelte b/packages/web/src/query/AceEditor.svelte index a81bb0a1b..0e5da7328 100644 --- a/packages/web/src/query/AceEditor.svelte +++ b/packages/web/src/query/AceEditor.svelte @@ -1,6 +1,6 @@