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
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
0e4fa348
JB
11export type MessageHandler<T> = (this: T, message: unknown) => void;
12
83e00df1 13export type WorkerOptions = {
4bfd80fa
JB
14 workerStartDelay?: number;
15 elementStartDelay?: number;
1895299d
JB
16 poolMaxSize: number;
17 poolMinSize: number;
b8da29bc 18 elementsPerWorker?: number;
9efbac5b 19 poolOptions?: PoolOptions<Worker>;
0e4fa348 20 messageHandler?: MessageHandler<Worker>;
83e00df1 21};
b8da29bc 22
32de5a57 23export type WorkerData = Record<string, unknown>;
46eb543c 24
83e00df1 25export type WorkerSetElement = {
81797102
JB
26 worker: Worker;
27 numberOfWorkerElements: number;
83e00df1 28};
81797102 29
83e00df1 30export type WorkerMessage<T extends WorkerData> = {
2a370053 31 id: WorkerMessageEvents;
c3ee95af 32 data: T;
83e00df1 33};
c045d9a9 34
2a370053 35export enum WorkerMessageEvents {
721646e9 36 startWorkerElement = 'startWorkerElement',
c045d9a9 37}