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