refactor: cleanup performance statistics code
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerTypes.ts
index 1b7cbb300cf95a7ac5c9ba22bc4e8ac4a622afe6..3986164bfb82471657cdc7f5188216f890ddb4d6 100644 (file)
@@ -1,6 +1,6 @@
 import type { Worker } from 'node:worker_threads';
 
-import type { PoolOptions } from 'poolifier';
+import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier';
 
 export enum WorkerProcessType {
   workerSet = 'workerSet',
@@ -8,7 +8,24 @@ export enum WorkerProcessType {
   staticPool = 'staticPool',
 }
 
-export type MessageHandler<T> = (this: T, message: unknown) => void;
+export type SetInfo = {
+  version: string;
+  type: string;
+  worker: string;
+  size: number;
+  elementsExecuting: number;
+  elementsPerWorker: number;
+};
+
+export enum WorkerSetEvents {
+  error = 'error',
+}
+
+export const WorkerEvents = {
+  ...PoolEvents,
+  ...WorkerSetEvents,
+} as const;
+export type WorkerEvents = PoolEvent | WorkerSetEvents;
 
 export type WorkerOptions = {
   workerStartDelay?: number;
@@ -16,8 +33,7 @@ export type WorkerOptions = {
   poolMaxSize: number;
   poolMinSize: number;
   elementsPerWorker?: number;
-  poolOptions?: PoolOptions<Worker>;
-  messageHandler?: MessageHandler<Worker>;
+  poolOptions?: ThreadPoolOptions;
 };
 
 export type WorkerData = Record<string, unknown>;