1.0.1-0
[e-mobility-charging-stations-simulator.git] / src / utils / Configuration.ts
index 4bc1853d2d8543db22b4f8c3d35996100467dcc1..0926115ce41a0f016b75c799114d8a4553806695 100644 (file)
@@ -1,6 +1,7 @@
 import ConfigurationData, { StationTemplateURL } from '../types/ConfigurationData';
 
 import Constants from './Constants';
+import type { WorkerChoiceStrategy } from 'poolifier';
 import { WorkerProcessType } from '../types/Worker';
 import fs from 'fs';
 import path from 'path';
@@ -8,7 +9,7 @@ import path from 'path';
 export default class Configuration {
   private static configurationFilePath = path.join(path.resolve(__dirname, '../'), 'assets', 'config.json');
   private static configurationFileWatcher: fs.FSWatcher;
-  private static configuration: ConfigurationData;
+  private static configuration: ConfigurationData | null = null;
   private static configurationChangeCallback: () => Promise<void>;
 
   static setConfigurationChangeCallback(cb: () => Promise<void>): void {
@@ -65,6 +66,10 @@ export default class Configuration {
     return Configuration.objectHasOwnProperty(Configuration.getConfig(), 'workerPoolMaxSize') ? Configuration.getConfig().workerPoolMaxSize : 16;
   }
 
+  static getWorkerPoolStrategy(): WorkerChoiceStrategy {
+    return Configuration.getConfig().workerPoolStrategy;
+  }
+
   static getChargingStationsPerWorker(): number {
     return Configuration.objectHasOwnProperty(Configuration.getConfig(), 'chargingStationsPerWorker') ? Configuration.getConfig().chargingStationsPerWorker : 1;
   }
@@ -138,7 +143,7 @@ export default class Configuration {
   }
 
   private static objectHasOwnProperty(object: any, property: string): boolean {
-    return Object.prototype.hasOwnProperty.call(object, property) as boolean;
+    return Object.prototype.hasOwnProperty.call(object, property);
   }
 
   private static isUndefined(obj: any): boolean {