-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com>
// SPDX-License-Identifier: AGPL-3.0-only
import { idbBackend } from "@yamori/idb_backend";
import { isValidMessage, type Message } from "./message.ts";
async function main() {
const backend = await idbBackend();
addEventListener("message", async (ev) => {
if (!isValidMessage(ev.data)) {
console.warn("Invalid message sent from main thread.");
return;
}
const resp = await backend.handle(ev.data);
self.postMessage(
{
id: ev.data.id,
service: ev.data.service,
method: ev.data.method,
data: resp,
} satisfies Message,
{
transfer: [resp.buffer],
},
);
});
self.postMessage("ready");
}
main();