ATG: add support for idTag distribution algorithms
[e-mobility-charging-stations-simulator.git] / src / types / Worker.ts
index f2d0a6d227b7250b0d58474585bfb4bb3ac1bcfc..29f70aa4d694e64075934ebf398eaa6cdc92a34e 100644 (file)
@@ -1,6 +1,6 @@
-import { Worker } from 'worker_threads';
+import type { Worker } from 'worker_threads';
 
-import { PoolOptions } from 'poolifier';
+import type { PoolOptions } from 'poolifier';
 
 export enum WorkerProcessType {
   WORKER_SET = 'workerSet',
@@ -8,29 +8,28 @@ export enum WorkerProcessType {
   STATIC_POOL = 'staticPool',
 }
 
-export interface WorkerOptions {
+export type WorkerOptions = {
   workerStartDelay?: number;
   elementStartDelay?: number;
   poolMaxSize?: number;
   poolMinSize?: number;
   elementsPerWorker?: number;
   poolOptions?: PoolOptions<Worker>;
-  messageHandler?: (message: unknown) => void | Promise<void>;
-}
+  messageHandler?: (this: Worker, message: unknown) => void | Promise<void>;
+};
 
 export type WorkerData = Record<string, unknown>;
 
-export interface WorkerSetElement {
+export type WorkerSetElement = {
   worker: Worker;
   numberOfWorkerElements: number;
-}
+};
 
-export interface WorkerMessage<T extends WorkerData> {
+export type WorkerMessage<T extends WorkerData> = {
   id: WorkerMessageEvents;
   data: T;
-}
+};
 
 export enum WorkerMessageEvents {
   START_WORKER_ELEMENT = 'startWorkerElement',
-  STOP_WORKER_ELEMENT = 'stopWorkerElement',
 }