1 import type { Worker
} from
'node:worker_threads'
3 import { type PoolEvent
, PoolEvents
, type ThreadPoolOptions
} from
'poolifier'
5 export enum WorkerProcessType
{
6 workerSet
= 'workerSet',
8 dynamicPool
= 'dynamicPool',
9 fixedPool
= 'fixedPool',
12 export interface SetInfo
{
17 elementsExecuting
: number
18 elementsPerWorker
: number
21 export enum WorkerSetEvents
{
25 elementStarted
= 'elementStarted',
26 elementError
= 'elementError',
29 export const WorkerEvents
= {
33 // eslint-disable-next-line @typescript-eslint/no-redeclare
34 export type WorkerEvents
= PoolEvent
| WorkerSetEvents
36 export interface WorkerOptions
{
37 workerStartDelay
?: number
38 elementStartDelay
?: number
41 elementsPerWorker
?: number
42 poolOptions
?: ThreadPoolOptions
45 export type WorkerData
= Record
<string, unknown
>
47 export interface WorkerSetElement
{
49 numberOfWorkerElements
: number
52 export interface WorkerMessage
<T
extends WorkerData
> {
53 event
: WorkerMessageEvents
57 export enum WorkerMessageEvents
{
58 startWorkerElement
= 'startWorkerElement',
59 startWorkerElementError
= 'startWorkerElementError',
60 startedWorkerElement
= 'startedWorkerElement',