From d57c58a3bda5aa807f7ad65f2327bd8672b9fce8 Mon Sep 17 00:00:00 2001 From: Schluffe Date: Sun, 27 Sep 2026 18:09:53 +0200 Subject: [PATCH] Setup example worker --- biome.json | 3 ++- main.ts | 9 +++++++++ vite.config.ts | 8 +++++++- worker.ts | 6 ++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 worker.ts diff --git a/biome.json b/biome.json index a9af090..0e740ec 100644 --- a/biome.json +++ b/biome.json @@ -17,7 +17,8 @@ "suspicious": { "noTsIgnore": "off", "noAssignInExpressions": "off", - "noFallthroughSwitchClause": "warn" + "noFallthroughSwitchClause": "warn", + "noGlobalAssign": "warn" }, "correctness": { "useParseIntRadix": "off", diff --git a/main.ts b/main.ts index af42dee..c5963ea 100644 --- a/main.ts +++ b/main.ts @@ -85,3 +85,12 @@ function animate(timestamp: number): void { animate(delta); })(); + +const worker = new Worker(new URL("./worker.ts", import.meta.url), { + type: "module", +}); + +worker.onmessage = (event) => { + console.log(event.data); +}; +worker.postMessage("foo"); diff --git a/vite.config.ts b/vite.config.ts index 6e62fee..68e93a5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -18,7 +18,13 @@ function devTools(): Plugin { export default defineConfig({ server: { host, port, hmr: false }, - build: { target: "esnext" }, + build: { + target: "esnext", + main: `${root}index.html`, + lib: { + entry: `${root}worker.ts`, + }, + }, test: { include: ["./engine/**/*.test.ts"], environment: "jsdom", diff --git a/worker.ts b/worker.ts new file mode 100644 index 0000000..8311671 --- /dev/null +++ b/worker.ts @@ -0,0 +1,6 @@ +// biome-ignore lint: web worker +onmessage = (event) => { + if (event.data === "foo") { + postMessage("bar"); + } +};