fix: untangle worker set message from application message
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerTypes.ts
index faf327dbede39d111c139d32b8dcd313d2981381..e1e89a7cde183ac99841b55fdc67b04ad0839329 100644 (file)
@@ -4,15 +4,16 @@ import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier'
 
 export enum WorkerProcessType {
   workerSet = 'workerSet',
+  fixedPool = 'fixedPool',
   /** @experimental */
-  dynamicPool = 'dynamicPool',
-  fixedPool = 'fixedPool'
+  dynamicPool = 'dynamicPool'
 }
 
 export interface SetInfo {
   version: string
   type: string
   worker: string
+  started: boolean
   size: number
   elementsExecuting: number
   elementsPerWorker: number
@@ -22,7 +23,7 @@ export enum WorkerSetEvents {
   started = 'started',
   stopped = 'stopped',
   error = 'error',
-  elementStarted = 'elementStarted',
+  elementAdded = 'elementAdded',
   elementError = 'elementError'
 }
 
@@ -35,7 +36,7 @@ export type WorkerEvents = PoolEvent | WorkerSetEvents
 
 export interface WorkerOptions {
   workerStartDelay?: number
-  elementStartDelay?: number
+  elementAddDelay?: number
   poolMaxSize: number
   poolMinSize: number
   elementsPerWorker?: number
@@ -50,12 +51,20 @@ export interface WorkerSetElement {
 }
 
 export interface WorkerMessage<T extends WorkerData> {
+  uuid: `${string}-${string}-${string}-${string}`
   event: WorkerMessageEvents
   data: T
 }
 
 export enum WorkerMessageEvents {
-  startWorkerElement = 'startWorkerElement',
-  startWorkerElementError = 'startWorkerElementError',
-  startedWorkerElement = 'startedWorkerElement'
+  addWorkerElement = 'addWorkerElement',
+  addedWorkerElement = 'addedWorkerElement',
+  workerElementError = 'workerElementError'
+}
+
+export interface WorkerDataError extends WorkerData {
+  event: WorkerMessageEvents
+  name: string
+  message: string
+  stack?: string
 }