UNPKG

@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
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 {};