Whitespace cleanup in log messages
[e-mobility-charging-stations-simulator.git] / src / types / Worker.ts
index bc2972684c0cb2677f34176ffbd11b119392d423..12c2ea369552b2d5a8049adbce2bced511a996d5 100644 (file)
@@ -1,30 +1,37 @@
-import { Worker } from 'worker_threads';
+import type { Worker } from 'worker_threads';
+
+import type { PoolOptions } from 'poolifier';
 
 export enum WorkerProcessType {
   WORKER_SET = 'workerSet',
   DYNAMIC_POOL = 'dynamicPool',
-  STATIC_POOL = 'staticPool'
+  STATIC_POOL = 'staticPool',
 }
 
-export interface WorkerOptions {
+export type MessageHandler<T> = (this: T, message: unknown) => void;
+
+export type WorkerOptions = {
+  workerStartDelay?: number;
+  elementStartDelay?: number;
   poolMaxSize?: number;
   poolMinSize?: number;
   elementsPerWorker?: number;
-}
+  poolOptions?: PoolOptions<Worker>;
+  messageHandler?: MessageHandler<Worker>;
+};
 
-export interface WorkerData { }
+export type WorkerData = Record<string, unknown>;
 
-export interface StationWorkerData extends WorkerData {
-  index: number;
-  templateFile: string;
-}
+export type WorkerSetElement = {
+  worker: Worker;
+  numberOfWorkerElements: number;
+};
 
-export interface WorkerSetElement {
-  worker: Worker,
-  numberOfWorkerElements: number
-}
+export type WorkerMessage<T extends WorkerData> = {
+  id: WorkerMessageEvents;
+  data: T;
+};
 
-export enum WorkerEvents {
+export enum WorkerMessageEvents {
   START_WORKER_ELEMENT = 'startWorkerElement',
 }
-