build(deps): apply updates
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerTypes.ts
CommitLineData
01f4001e 1import type { Worker } from 'node:worker_threads';
c045d9a9 2
be245fda 3import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier';
8114d10e 4
a4624c96 5export enum WorkerProcessType {
721646e9
JB
6 workerSet = 'workerSet',
7 dynamicPool = 'dynamicPool',
8 staticPool = 'staticPool',
a4624c96
JB
9}
10
b779c0f8 11export type SetInfo = {
628c30e5 12 version: string;
0bde1ea1
JB
13 type: string;
14 worker: string;
b779c0f8 15 size: number;
19bdf4ca 16 elementsExecuting: number;
b779c0f8
JB
17 elementsPerWorker: number;
18};
19
810f4caf
JB
20export enum WorkerSetEvents {
21 error = 'error',
22}
23
24export const WorkerEvents = {
25 ...PoolEvents,
26 ...WorkerSetEvents,
27} as const;
28export type WorkerEvents = PoolEvent | WorkerSetEvents;
29
83e00df1 30export type WorkerOptions = {
4bfd80fa
JB
31 workerStartDelay?: number;
32 elementStartDelay?: number;
1895299d
JB
33 poolMaxSize: number;
34 poolMinSize: number;
b8da29bc 35 elementsPerWorker?: number;
be245fda 36 poolOptions?: ThreadPoolOptions;
83e00df1 37};
b8da29bc 38
32de5a57 39export type WorkerData = Record<string, unknown>;
46eb543c 40
83e00df1 41export type WorkerSetElement = {
81797102
JB
42 worker: Worker;
43 numberOfWorkerElements: number;
83e00df1 44};
81797102 45
83e00df1 46export type WorkerMessage<T extends WorkerData> = {
2a370053 47 id: WorkerMessageEvents;
c3ee95af 48 data: T;
83e00df1 49};
c045d9a9 50
2a370053 51export enum WorkerMessageEvents {
721646e9 52 startWorkerElement = 'startWorkerElement',
c045d9a9 53}