diff options
author | 2025-02-24 04:42:53 +0100 | |
---|---|---|
committer | 2025-02-24 04:42:53 +0100 | |
commit | 6196ec5f74faa0b783a1b3d75eadcd6cad5f651e (patch) | |
tree | 5d38c1fe5a003c2c3f333d08235bb715a9e6b0f1 /src | |
parent | 7340682fd77fd89d38bf17cf9b194c5d2f602088 (diff) | |
download | httptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.tar.gz httptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.tar.bz2 httptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.tar.lz httptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.zip |
fix: split bundles, reproducible builds (hopefully)
Diffstat (limited to 'src')
-rw-r--r-- | src/routes/Monaco.svelte | 39 | ||||
-rw-r--r-- | src/routes/ts-worker.ts | 11 |
2 files changed, 35 insertions, 15 deletions
diff --git a/src/routes/Monaco.svelte b/src/routes/Monaco.svelte index 409ab39..cfe9767 100644 --- a/src/routes/Monaco.svelte +++ b/src/routes/Monaco.svelte @@ -1,11 +1,11 @@ <script lang="ts"> import type monaco from 'monaco-editor'; import { onDestroy, onMount } from 'svelte'; - import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; - import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; - import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'; - import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'; - import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; + // import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; + // import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; + // import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'; + // import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'; + // import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; // @ts-ignore import wrqTypes from '@types/webextension-polyfill/namespaces/webRequest.d.ts?raw'; // @ts-ignore @@ -37,20 +37,29 @@ declare global { onMount(async () => { // @ts-ignore globalThis.MonacoEnvironment = { - getWorker: function (_moduleId: any, label: string) { + getWorker: async (_moduleId: any, label: string) => { if (label === 'json') { - return new jsonWorker(); - } - if (label === 'css' || label === 'scss' || label === 'less') { - return new cssWorker(); - } - if (label === 'html' || label === 'handlebars' || label === 'razor') { - return new htmlWorker(); + return new ( + await import( + 'monaco-editor/esm/vs/language/json/json.worker?worker' + ) + ).default(); } + // if (label === 'css' || label === 'scss' || label === 'less') { + // return new cssWorker(); + // } + // if (label === 'html' || label === 'handlebars' || label === 'razor') { + // return new htmlWorker(); + // } if (label === 'typescript' || label === 'javascript') { - return new tsWorker(); + return await ( + await import('./ts-worker') + ).default; } - return new editorWorker(); + // return new editorWorker(); + return new ( + await import('monaco-editor/esm/vs/editor/editor.worker?worker') + ).default(); }, }; diff --git a/src/routes/ts-worker.ts b/src/routes/ts-worker.ts new file mode 100644 index 0000000..460885c --- /dev/null +++ b/src/routes/ts-worker.ts @@ -0,0 +1,11 @@ +export default (async () => { + const contents = new TextDecoder().decode( + (await (await import('brotli-wasm')).default).decompress( + await fetch('./generated/ts-worker.js.br') + .then((v) => v.arrayBuffer()) + .then((v) => new Uint8Array(v)) + ) + ); + const worker = new Worker(`data:text/javascript;base64,${btoa(contents)}`); + return worker; +})(); |