refactor(simulator): sort exports, switch to node: import syntax for internal
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerTypes.ts
1 import type { Worker } from 'node:worker_threads';
2
3 import type { PoolOptions } from 'poolifier';
4
5 export enum WorkerProcessType {
6 WORKER_SET = 'workerSet',
7 DYNAMIC_POOL = 'dynamicPool',
8 STATIC_POOL = 'staticPool',
9 }
10
11 export type MessageHandler<T> = (this: T, message: unknown) => void;
12
13 export type WorkerOptions = {
14 workerStartDelay?: number;
15 elementStartDelay?: number;
16 poolMaxSize: number;
17 poolMinSize: number;
18 elementsPerWorker?: number;
19 poolOptions?: PoolOptions<Worker>;
20 messageHandler?: MessageHandler<Worker>;
21 };
22
23 export type WorkerData = Record<string, unknown>;
24
25 export type WorkerSetElement = {
26 worker: Worker;
27 numberOfWorkerElements: number;
28 };
29
30 export type WorkerMessage<T extends WorkerData> = {
31 id: WorkerMessageEvents;
32 data: T;
33 };
34
35 export enum WorkerMessageEvents {
36 START_WORKER_ELEMENT = 'startWorkerElement',
37 }