File size: 896 Bytes
21ab33c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
37
38
39
40
41
42
43
44
45
46
import type {
  LoadProgress,
  TokenizationResult,
  TokenizerMetadata,
} from "./types";

export type WorkerRequest =
  | { id: number; type: "load"; reference: string }
  | {
      id: number;
      type: "tokenize";
      text: string;
      addSpecialTokens: boolean;
    }
  | { id: number; type: "cache-size" }
  | { id: number; type: "clear-cache" };

export type WorkerRequestPayload = WorkerRequest extends infer Request
  ? Request extends { id: number }
    ? Omit<Request, "id">
    : never
  : never;

export type WorkerSuccessPayload =
  | TokenizerMetadata
  | TokenizationResult
  | number
  | null;

export type WorkerResponse =
  | {
      id: number;
      type: "progress";
      progress: LoadProgress;
    }
  | {
      id: number;
      type: "success";
      payload: WorkerSuccessPayload;
    }
  | {
      id: number;
      type: "error";
      message: string;
    };