opnet
Version:
The perfect library for building Bitcoin-based applications.
29 lines (28 loc) • 955 B
TypeScript
export interface TaskMessage<TOp extends string = string, TData = unknown> {
id: number;
op: TOp;
data: TData;
}
export interface ResultMessage<TResult = unknown> {
id: number;
result?: TResult;
error?: string;
}
export interface PendingTask<TResult = unknown> {
resolve: (value: TResult) => void;
reject: (error: Error) => void;
}
export interface QueuedTask<TOp extends string = string, TData = unknown, TResult = unknown> extends PendingTask<TResult> {
op: TOp;
data: TData;
transferables?: ArrayBuffer[];
}
export interface ThreaderOptions {
poolSize?: number;
}
export interface UniversalWorker<TOp extends string = string, TData = unknown, TResult = unknown> {
postMessage(msg: TaskMessage<TOp, TData>, transferables?: readonly Transferable[]): void;
onMessage(callback: (msg: ResultMessage<TResult>) => void): void;
terminate(): void | Promise<void>;
}
export type WorkerScript = string;