1 import type { Worker
} from
'node:worker_threads';
3 import { type PoolEvent
, PoolEvents
, type PoolOptions
} from
'poolifier';
5 export enum WorkerProcessType
{
6 workerSet
= 'workerSet',
7 dynamicPool
= 'dynamicPool',
8 staticPool
= 'staticPool',
11 export type SetInfo
= {
13 runningElements
: number;
14 elementsPerWorker
: number;
17 export enum WorkerSetEvents
{
21 export const WorkerEvents
= {
25 export type WorkerEvents
= PoolEvent
| WorkerSetEvents
;
27 export type MessageHandler
<T
> = (this: T
, message
: unknown
) => void;
29 export type WorkerOptions
= {
30 workerStartDelay
?: number;
31 elementStartDelay
?: number;
34 elementsPerWorker
?: number;
35 poolOptions
?: PoolOptions
<Worker
>;
36 messageHandler
?: MessageHandler
<Worker
>;
39 export type WorkerData
= Record
<string, unknown
>;
41 export type WorkerSetElement
= {
43 numberOfWorkerElements
: number;
46 export type WorkerMessage
<T
extends WorkerData
> = {
47 id
: WorkerMessageEvents
;
51 export enum WorkerMessageEvents
{
52 startWorkerElement
= 'startWorkerElement',