Log unconditionally uncaughtException and unhandledRejection in
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 16 Sep 2022 16:53:36 +0000 (18:53 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 16 Sep 2022 16:53:36 +0000 (18:53 +0200)
Bootstrap

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/Bootstrap.ts
src/charging-station/ChargingStationWorker.ts

index 85f8f371cf64ade08d7e40bd688cd972970a527e..7c80067ccd93905b2e76cec7ac9a3641bd670ff6 100644 (file)
@@ -75,6 +75,9 @@ export class Bootstrap {
   public async start(): Promise<void> {
     if (isMainThread && this.started === false) {
       try {
+        // Enable unconditionally for now
+        this.logUnhandledRejection();
+        this.logUncaughtException();
         this.initialize();
         await this.storage?.open();
         await this.workerImplementation.start();
@@ -244,6 +247,18 @@ export class Bootstrap {
     this.initializeWorkerImplementation();
   }
 
+  private logUncaughtException(): void {
+    process.on('uncaughtException', (error: Error) => {
+      console.error(chalk.red('Uncaught exception: '), error);
+    });
+  }
+
+  private logUnhandledRejection(): void {
+    process.on('unhandledRejection', (reason: unknown) => {
+      console.error(chalk.red('Unhandled rejection: '), reason);
+    });
+  }
+
   private async startChargingStation(
     index: number,
     stationTemplateUrl: StationTemplateUrl
index 626e6e072c3d63f6869be875cbe7be13e3e2f25f..4f109bf5023206c826e55f880c278d576ccaafa3 100644 (file)
@@ -24,7 +24,7 @@ if (ChargingStationUtils.workerPoolInUse()) {
 } else {
   // Add message listener to start charging station from main thread
   addMessageListener();
-  if (!Utils.isUndefined(workerData)) {
+  if (Utils.isUndefined(workerData) === false) {
     startChargingStation(workerData as ChargingStationWorkerData);
   }
 }