zorigami
Version:
a package for managing web workers
39 lines (38 loc) • 1.69 kB
TypeScript
import { INDIVIDUAL_WORKER, TRANSPARENT_POOL } from './worker_constants';
export interface IConstructable<T> {
new (): T;
}
export interface IWorkerSet {
readonly worker: Worker;
readonly worker_name: string;
}
export interface ICustomWorkerPort {
postMessage: PromisedPostMessage;
createResponse: (event: MessageEvent) => (message: any) => void;
}
export interface IMessage {
from?: string;
}
export interface ApiConfiguration {
readonly [dispatch_name: string]: DispatchHandler;
}
export interface Dictionary<T> {
[key: string]: T;
}
export declare type IHasToJSON = any;
export declare type ResponseCallback = (message: any, err?: any) => void;
export declare type UUID = string;
export declare type Maybe<T> = T | undefined;
export declare type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
export declare type PromisedPostMessage = (message: any, transferables?: Array<Transferable>) => Promise<MessageEvent>;
export declare type ResponseFunction = (message: any) => void;
export declare type DispatchHandler = (event: MessageEvent, respond: ResponseFunction) => void;
export declare type WorkerConstructor = IConstructable<Worker>;
export declare type WorkerList = Array<{
WorkerConstructor: WorkerConstructor;
worker_name: string;
type: INDIVIDUAL_WORKER | TRANSPARENT_POOL;
}>;
export declare function isMessagePort(potential_port: Maybe<MessagePort>): potential_port is MessagePort;
export declare function isCustomPort(potential_port: Maybe<ICustomWorkerPort>): potential_port is ICustomWorkerPort;
export declare function isPromisedPostMessage(potential_func: Maybe<PromisedPostMessage>): potential_func is PromisedPostMessage;