fix: fix 'Cannot read properties of undefined' with revervation enabled
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerTypes.ts
index fa1c82b037a60c92dcdfe9366c9bde682b1fd8be..90a4175fdbb97170db6c1c4aa27d75f2433ac3ca 100644 (file)
@@ -1,18 +1,22 @@
 import type { Worker } from 'node:worker_threads';
 
-import { type PoolEvent, PoolEvents, type PoolOptions } from 'poolifier';
+import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier';
 
 export enum WorkerProcessType {
   workerSet = 'workerSet',
+  /** @experimental */
   dynamicPool = 'dynamicPool',
   staticPool = 'staticPool',
 }
 
-export type SetInfo = {
+export interface SetInfo {
+  version: string;
+  type: string;
+  worker: string;
   size: number;
-  runningElements: number;
+  elementsExecuting: number;
   elementsPerWorker: number;
-};
+}
 
 export enum WorkerSetEvents {
   error = 'error',
@@ -24,29 +28,26 @@ export const WorkerEvents = {
 } as const;
 export type WorkerEvents = PoolEvent | WorkerSetEvents;
 
-export type MessageHandler<T> = (this: T, message: unknown) => void;
-
-export type WorkerOptions = {
+export interface WorkerOptions {
   workerStartDelay?: number;
   elementStartDelay?: number;
   poolMaxSize: number;
   poolMinSize: number;
   elementsPerWorker?: number;
-  poolOptions?: PoolOptions<Worker>;
-  messageHandler?: MessageHandler<Worker>;
-};
+  poolOptions?: ThreadPoolOptions;
+}
 
 export type WorkerData = Record<string, unknown>;
 
-export type WorkerSetElement = {
+export interface WorkerSetElement {
   worker: Worker;
   numberOfWorkerElements: number;
-};
+}
 
-export type WorkerMessage<T extends WorkerData> = {
-  id: WorkerMessageEvents;
+export interface WorkerMessage<T extends WorkerData> {
+  event: WorkerMessageEvents;
   data: T;
-};
+}
 
 export enum WorkerMessageEvents {
   startWorkerElement = 'startWorkerElement',