@byterygon/workerr
Version:
Workerr is a lightweight library that simplifies working with Web Workers in JavaScript. It provides a more intuitive way to handle parallel tasks by using Promises, along with a built-in worker pool to efficiently manage worker instances. With strong Typ
21 lines (19 loc) • 1.07 kB
TypeScript
import { InvokeHandlers } from './command';
interface WorkerrEventMap<IContext> {
"context:update": [IContext];
}
interface WorkerrConstructor<IContext extends object> {
invokeHandler: InvokeHandlers<IContext>;
}
export declare class Workerr<IContext extends object> {
context: IContext;
private invokeHandler;
private emitter;
private constructor();
static create<IContext extends object>(cb: () => Promise<WorkerrConstructor<IContext>>): Promise<Workerr<IContext> | undefined>;
private static postMessage;
addListener<K extends keyof WorkerrEventMap<IContext>>(eventName: K, listener: K extends "context:update" ? WorkerrEventMap<IContext>[K] extends unknown[] ? (...args: WorkerrEventMap<IContext>[K]) => void : never : never): void;
removeListener<K extends keyof WorkerrEventMap<IContext>>(eventName: K, listener: K extends "context:update" ? WorkerrEventMap<IContext>[K] extends unknown[] ? (...args: WorkerrEventMap<IContext>[K]) => void : never : never): void;
removeAllListeners(eventName?: unknown): void;
}
export {};