Fix exit conditions at startup
[e-mobility-charging-stations-simulator.git] / src / charging-station / Bootstrap.ts
index 516730b9ec87da6d25e0561cd39bbb7b2c763832..80e14d151bef4897d4f4ec541e967529572d2003 100644 (file)
@@ -14,6 +14,7 @@ import {
   ChargingStationData,
   ChargingStationWorkerData,
   ChargingStationWorkerMessage,
+  ChargingStationWorkerMessageData,
   ChargingStationWorkerMessageEvents,
 } from '../types/ChargingStationWorker';
 import { StationTemplateUrl } from '../types/ConfigurationData';
@@ -31,6 +32,9 @@ import UIServerFactory from './ui-server/UIServerFactory';
 
 const moduleName = 'Bootstrap';
 
+const missingChargingStationsConfigurationExitCode = 1;
+const noChargingStationTemplatesExitCode = 2;
+
 export default class Bootstrap {
   private static instance: Bootstrap | null = null;
   private workerImplementation: WorkerAbstract<ChargingStationWorkerData> | null = null;
@@ -104,12 +108,13 @@ export default class Bootstrap {
           console.warn(
             chalk.yellow("'stationTemplateUrls' not defined or empty in configuration, exiting")
           );
+          process.exit(missingChargingStationsConfigurationExitCode);
         }
         if (this.numberOfChargingStations === 0) {
           console.warn(
             chalk.yellow('No charging station template enabled in configuration, exiting')
           );
-          process.exit();
+          process.exit(noChargingStationTemplatesExitCode);
         } else {
           console.info(
             chalk.green(
@@ -173,14 +178,14 @@ export default class Bootstrap {
             workerChoiceStrategy: Configuration.getWorker().poolStrategy,
           },
           messageHandler: this.messageHandler.bind(this) as (
-            msg: ChargingStationWorkerMessage<ChargingStationData | Statistics>
+            msg: ChargingStationWorkerMessage<ChargingStationWorkerMessageData>
           ) => void,
         }
       ));
   }
 
   private messageHandler(
-    msg: ChargingStationWorkerMessage<ChargingStationData | Statistics>
+    msg: ChargingStationWorkerMessage<ChargingStationWorkerMessageData>
   ): void {
     // logger.debug(
     //   `${this.logPrefix()} ${moduleName}.messageHandler: Worker channel message received: ${JSON.stringify(