fix: only send UI server response when needed
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerUtils.ts
index 7db9de9e70fb2170dde17d7fad41df7ac1047f8c..943de290800f0b1804e4366da5c2d76ab2d6f28e 100644 (file)
@@ -1,7 +1,25 @@
+import chalk from 'chalk';
+
 export class WorkerUtils {
+  private constructor() {
+    // This is intentional
+  }
+
+  public static async sleep(milliSeconds: number): Promise<NodeJS.Timeout> {
+    return new Promise((resolve) => setTimeout(resolve as () => void, milliSeconds));
+  }
+
   public static defaultExitHandler = (code: number): void => {
-    if (code !== 0) {
-      console.error(`Worker stopped with exit code ${code}`);
+    if (code === 0) {
+      console.info(chalk.green('Worker exited successfully'));
+    } else if (code === 1) {
+      console.info(chalk.green('Worker terminated successfully'));
+    } else if (code > 1) {
+      console.error(chalk.red(`Worker exited with exit code: ${code.toString()}`));
     }
   };
+
+  public static defaultErrorHandler = (error: Error): void => {
+    console.error(chalk.red('Worker errored: ', error));
+  };
 }