@devteks/node-workers
Version:
Simple and easy to use worker pool implementation for Node.js
43 lines (39 loc) • 1.4 kB
TypeScript
/**
* @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 };