Initial Commit

This commit is contained in:
2026-05-27 23:47:53 +01:00
parent fbc70f96e6
commit 9b28db724f
18103 changed files with 1600554 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
import type { ThreadWorkerLike } from "../../src/communicator/worker-thread/worker-thread-communicator.js";
interface Listener {
event: string;
handler: (event: { data?: unknown; error?: unknown }) => void;
}
export interface FakeThreadWorker extends ThreadWorkerLike {
deliver(message: unknown): void;
emitError(error: unknown): void;
emitExit(): void;
posted: unknown[];
terminated: boolean;
}
export function makeFakeThreadWorker(): FakeThreadWorker {
const listeners: Listener[] = [];
const worker: FakeThreadWorker = {
posted: [],
terminated: false,
postMessage(message: unknown): void {
worker.posted.push(message);
},
addEventListener(event, handler): void {
listeners.push({ event, handler });
},
terminate(): void {
worker.terminated = true;
},
deliver(message: unknown): void {
for (const l of listeners) {
if (l.event === "message") {
l.handler({ data: message });
}
}
},
emitError(error: unknown): void {
for (const l of listeners) {
if (l.event === "error") {
l.handler({ error });
}
}
},
emitExit(): void {
for (const l of listeners) {
if (l.event === "exit") {
l.handler({});
}
}
},
};
return worker;
}