File size: 1,072 Bytes
aa89cb5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
export type BrowserSQLiteStorage = 'memory' | 'opfs';

export type BrowserSQLiteOpenOptions = Readonly<{
  storage?: BrowserSQLiteStorage;
  databaseName?: string;
}>;

export type BrowserSQLiteRequest = Readonly<{
  type: 'teaql-browser-sqlite-request';
  requestId: number;
  operation: 'open' | 'query' | 'reset' | 'close';
  payload?: Record<string, unknown>;
}>;

export type BrowserSQLiteResponse = Readonly<{
  type: 'teaql-browser-sqlite-response';
  requestId: number;
  result?: unknown;
  error?: Readonly<{ name: string; message: string; code?: string }>;
}>;

export interface BrowserSQLiteWorkerLike {
  postMessage(message: BrowserSQLiteRequest): void;
  addEventListener(type: 'message', listener: (event: MessageEvent<BrowserSQLiteResponse>) => void): void;
  addEventListener(type: 'error', listener: (event: ErrorEvent) => void): void;
  removeEventListener(type: 'message', listener: (event: MessageEvent<BrowserSQLiteResponse>) => void): void;
  removeEventListener(type: 'error', listener: (event: ErrorEvent) => void): void;
  terminate?(): void;
}