1 import type { Worker
} from
'worker_threads';
3 import type { PoolOptions
} from
'poolifier';
5 export enum WorkerProcessType
{
6 WORKER_SET
= 'workerSet',
7 DYNAMIC_POOL
= 'dynamicPool',
8 STATIC_POOL
= 'staticPool',
11 export type MessageHandler
<T
> = (this: T
, message
: unknown
) => void;
13 export type WorkerOptions
= {
14 workerStartDelay
?: number;
15 elementStartDelay
?: number;
18 elementsPerWorker
?: number;
19 poolOptions
?: PoolOptions
<Worker
>;
20 messageHandler
?: MessageHandler
<Worker
>;
23 export type WorkerData
= Record
<string, unknown
>;
25 export type WorkerSetElement
= {
27 numberOfWorkerElements
: number;
30 export type WorkerMessage
<T
extends WorkerData
> = {
31 id
: WorkerMessageEvents
;
35 export enum WorkerMessageEvents
{
36 START_WORKER_ELEMENT
= 'startWorkerElement',