refactor: split WorkerConstants class
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerConstants.ts
index dcbe2ca43caa3faec645c6e693dc04f1cb8b93f2..bbfcdac4b10a37b55adf26ee21d5385517b97ca9 100644 (file)
@@ -1,20 +1,30 @@
-import { availableParallelism } from 'poolifier';
+import { type ThreadPoolOptions, availableParallelism } from 'poolifier';
 
-export class WorkerConstants {
-  public static readonly EMPTY_FUNCTION = Object.freeze(() => {
-    /* This is intentional */
-  });
+import type { WorkerOptions } from './WorkerTypes';
 
-  public static readonly DEFAULT_ELEMENT_START_DELAY = 0;
-  public static readonly DEFAULT_WORKER_START_DELAY = 500;
-  public static readonly POOL_MAX_INACTIVE_TIME = 60000;
-  public static readonly DEFAULT_POOL_MIN_SIZE = Math.floor(availableParallelism() / 2);
-  public static readonly DEFAULT_POOL_MAX_SIZE = Math.round(availableParallelism() * 1.5);
-  public static readonly DEFAULT_ELEMENTS_PER_WORKER = 1;
+export const EMPTY_FUNCTION = Object.freeze(() => {
+  /* This is intentional */
+});
 
-  public static readonly version = '1.0.1';
+export const workerSetVersion = '1.0.1';
 
-  private constructor() {
-    // This is intentional
-  }
-}
+export const DEFAULT_ELEMENT_START_DELAY = 0;
+export const DEFAULT_WORKER_START_DELAY = 500;
+export const POOL_MAX_INACTIVE_TIME = 60000;
+export const DEFAULT_POOL_MIN_SIZE = Math.floor(availableParallelism() / 2);
+export const DEFAULT_POOL_MAX_SIZE = Math.round(availableParallelism() * 1.5);
+export const DEFAULT_ELEMENTS_PER_WORKER = 1;
+
+export const DEFAULT_WORKER_OPTIONS: WorkerOptions = Object.freeze({
+  workerStartDelay: DEFAULT_WORKER_START_DELAY,
+  elementStartDelay: DEFAULT_ELEMENT_START_DELAY,
+  poolMinSize: DEFAULT_POOL_MIN_SIZE,
+  poolMaxSize: DEFAULT_POOL_MAX_SIZE,
+  elementsPerWorker: DEFAULT_ELEMENTS_PER_WORKER,
+  poolOptions: {},
+});
+
+export const DEFAULT_POOL_OPTIONS: ThreadPoolOptions = {
+  enableEvents: true,
+  restartWorkerOnError: true,
+};