chore: version 1.2.16
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerTypes.ts
CommitLineData
01f4001e 1import type { Worker } from 'node:worker_threads';
c045d9a9 2
6c1761d4 3import type { PoolOptions } from 'poolifier';
8114d10e 4
a4624c96 5export enum WorkerProcessType {
721646e9
JB
6 workerSet = 'workerSet',
7 dynamicPool = 'dynamicPool',
8 staticPool = 'staticPool',
a4624c96
JB
9}
10
b779c0f8
JB
11export type SetInfo = {
12 size: number;
13 runningElements: number;
14 elementsPerWorker: number;
15};
16
0e4fa348
JB
17export type MessageHandler<T> = (this: T, message: unknown) => void;
18
83e00df1 19export type WorkerOptions = {
4bfd80fa
JB
20 workerStartDelay?: number;
21 elementStartDelay?: number;
1895299d
JB
22 poolMaxSize: number;
23 poolMinSize: number;
b8da29bc 24 elementsPerWorker?: number;
9efbac5b 25 poolOptions?: PoolOptions<Worker>;
0e4fa348 26 messageHandler?: MessageHandler<Worker>;
83e00df1 27};
b8da29bc 28
32de5a57 29export type WorkerData = Record<string, unknown>;
46eb543c 30
83e00df1 31export type WorkerSetElement = {
81797102
JB
32 worker: Worker;
33 numberOfWorkerElements: number;
83e00df1 34};
81797102 35
83e00df1 36export type WorkerMessage<T extends WorkerData> = {
2a370053 37 id: WorkerMessageEvents;
c3ee95af 38 data: T;
83e00df1 39};
c045d9a9 40
2a370053 41export enum WorkerMessageEvents {
721646e9 42 startWorkerElement = 'startWorkerElement',
c045d9a9 43}