File size: 967 Bytes
3fd5cc1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import type { ExecutionBackend, LayaQuestion, LoadProgress, ModelId, Precision, SystemOneResult } from "./shared/types";
export type WorkerRequest =
| { id: number; type: "ping" }
| { id: number; type: "load"; model: ModelId; manifestUrl: string; precision: Precision; backend: ExecutionBackend }
| { id: number; type: "infer"; state: unknown; questions: Array<{ id: string; question: LayaQuestion }> }
| { id: number; type: "close" };
export type WorkerRequestWithoutId = WorkerRequest extends infer Request
? Request extends { id: number }
? Omit<Request, "id">
: never
: never;
export type WorkerResponse =
| { id: number; type: "ready" }
| { id: number; type: "progress"; progress: LoadProgress }
| { id: number; type: "loaded" }
| { id: number; type: "result"; result: SystemOneResult }
| { id: number; type: "closed" }
| { id: number; type: "error"; code: "LOAD_FAILED" | "INFERENCE_FAILED"; stage: string; message: string };
|