1 import type { Worker
} from
'node:worker_threads'
3 import { type PoolEvent
, PoolEvents
, type ThreadPoolOptions
} from
'poolifier'
5 export enum WorkerProcessType
{
6 workerSet
= 'workerSet',
7 fixedPool
= 'fixedPool',
9 dynamicPool
= 'dynamicPool'
12 export interface SetInfo
{
18 elementsExecuting
: number
19 elementsPerWorker
: number
22 export enum WorkerSetEvents
{
26 elementAdded
= 'elementAdded',
27 elementError
= 'elementError'
30 export const WorkerEvents
= {
34 // eslint-disable-next-line @typescript-eslint/no-redeclare
35 export type WorkerEvents
= PoolEvent
| WorkerSetEvents
37 export interface WorkerOptions
{
38 workerStartDelay
?: number
39 elementStartDelay
?: number
42 elementsPerWorker
?: number
43 poolOptions
?: ThreadPoolOptions
46 export type WorkerData
= Record
<string, unknown
>
48 export interface WorkerSetElement
{
50 numberOfWorkerElements
: number
53 export interface WorkerMessage
<T
extends WorkerData
> {
54 event
: WorkerMessageEvents
58 export enum WorkerMessageEvents
{
59 addWorkerElement
= 'addWorkerElement',
60 addedWorkerElement
= 'addedWorkerElement',
61 workerElementError
= 'workerElementError'