import type { Worker } from 'node:worker_threads';
-import type { PoolOptions } from 'poolifier';
+import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier';
export enum WorkerProcessType {
workerSet = 'workerSet',
+ /** @experimental */
dynamicPool = 'dynamicPool',
staticPool = 'staticPool',
}
export type SetInfo = {
+ version: string;
+ type: string;
+ worker: string;
size: number;
- runningElements: number;
+ elementsExecuting: number;
elementsPerWorker: number;
};
-export type MessageHandler<T> = (this: T, message: unknown) => void;
+export enum WorkerSetEvents {
+ error = 'error',
+}
+
+export const WorkerEvents = {
+ ...PoolEvents,
+ ...WorkerSetEvents,
+} as const;
+export type WorkerEvents = PoolEvent | WorkerSetEvents;
export type WorkerOptions = {
workerStartDelay?: number;
poolMaxSize: number;
poolMinSize: number;
elementsPerWorker?: number;
- poolOptions?: PoolOptions<Worker>;
- messageHandler?: MessageHandler<Worker>;
+ poolOptions?: ThreadPoolOptions;
};
export type WorkerData = Record<string, unknown>;