promise-worker-bi
Version:
Promise-based messaging for Web Workers and Shared Workers
39 lines (38 loc) • 1.74 kB
TypeScript
type ErrorCallback = (a: Error) => void;
type QueryCallback = (a: any[], b: number | undefined) => any;
declare abstract class PWBBase {
_callbacks: Map<number, (a: Error | null, b: any) => void>;
_queryCallback: QueryCallback;
_workerType: "SharedWorker" | "Worker" | undefined;
constructor();
register(cb: QueryCallback): void;
abstract _postMessage(obj: any[], hostID?: number | undefined, transfer?: Transferable[] | undefined): void;
_postResponse(messageID: number, error: Error | null, result?: any, hostID?: number | undefined): void;
_handleQuery(messageID: number, query: any, hostID: number | undefined): void;
_onMessageCommon(e: MessageEvent): {
message: any;
type: number;
} | void;
}
declare class PWBHost extends PWBBase {
_errorCallback: ErrorCallback | undefined;
_hostID: number | undefined;
_hostIDQueue: (() => void)[] | undefined;
_worker: SharedWorker | Worker;
constructor(worker: SharedWorker | Worker);
registerError(cb: ErrorCallback): void;
_postMessage(obj: any[], _hostID?: unknown, transfer?: Transferable[] | undefined): void;
postMessage(userMessage: any, _hostID?: undefined, transfer?: Transferable[] | undefined): Promise<any>;
_onMessage(e: MessageEvent): void;
}
declare class PWBWorker extends PWBBase {
_hosts: Map<number, {
port: MessagePort;
}>;
_maxHostID: number;
constructor();
_postMessage(obj: any[], targetHostID?: number | undefined, transfer?: Transferable[] | undefined): void;
postMessage(userMessage: any, targetHostID?: number | undefined, transfer?: Transferable[] | undefined): Promise<any>;
_onMessage(e: MessageEvent): void;
}
export { PWBHost, PWBWorker };