UNPKG

@devteks/node-workers

Version:

Simple and easy to use worker pool implementation for Node.js

43 lines (39 loc) 1.4 kB
/** * @devteks/node-workers * Simple and easy to use worker pool implementation for Node.js * Version: 0.0.6 * Author: Mosa Muhana (https://github.com/mosamuhana) * License: MIT * Homepage: https://github.com/mosamuhana/node-workers#readme */ import { EventEmitter } from 'events'; declare type Callback<T = any> = (error?: any, result?: T) => void; interface Options { workerFile?: string; workerScript?: string; maxWorkers?: number; timeout?: number; } declare class WorkerError extends Error { error: Error; task: any; constructor(error: Error, task: any); [Symbol.toStringTag](): string; } interface Results<T> { results: T[]; errors: WorkerError[]; } declare class WorkerPool extends EventEmitter { #private; get maxWorkers(): number; constructor(options: Options); run<T, R>(task: T, callback: Callback<R>): void; run<T, R>(task: T): Promise<R>; run<T, R>(tasks: T[]): Promise<Results<R>>; static run<T, R>(options: Options, task: T): Promise<R>; static run<T, R>(options: Options, tasks: T[], emit?: (message: any) => void): Promise<Results<R>>; close(): Promise<void>; } declare function startWorker<T = unknown, R = unknown>(fn: (input: T, emit: (event: string, message: any) => void) => Promise<R>): void; export { Options, Results, WorkerError, WorkerPool, startWorker };