Experiment to rebuild Diffuse using web applets.
1<script>
2 import type { Tasks } from "@scripts/processor/artwork/worker";
3 import type { ArtworkRequest } from "./types";
4 import { register } from "@scripts/applet/common";
5 import { endpoint, SharedWorker } from "@scripts/common";
6 import manifest from "./_manifest.json";
7
8 ////////////////////////////////////////////
9 // SETUP
10 ////////////////////////////////////////////
11 const worker = endpoint<Tasks>(
12 new SharedWorker(new URL("../../../scripts/processor/artwork/worker", import.meta.url), {
13 type: "module",
14 name: manifest.name,
15 }).port,
16 );
17
18 // Register
19 const context = register({ worker });
20
21 ////////////////////////////////////////////
22 // ACTIONS
23 ////////////////////////////////////////////
24
25 async function artwork(request: ArtworkRequest) {
26 return await worker.artwork(request);
27 }
28
29 async function supply(items: ArtworkRequest[]) {
30 return await worker.supply(items);
31 }
32
33 context.setActionHandler("artwork", artwork);
34 context.setActionHandler("supply", supply);
35</script>