UNPKG

promise-worker-bi

Version:

Promise-based messaging for Web Workers and Shared Workers

39 lines (38 loc) 1.74 kB
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 };