fix: fix ATG configuration save at template reload
[e-mobility-charging-stations-simulator.git] / src / utils / Utils.ts
index 49a5fdf954c4a54e9eb807ab434880ec79027480..c2c9d0ad22ac7152a5dd2565d166f278b5cd7ef3 100644 (file)
@@ -21,7 +21,7 @@ export const validateUUID = (uuid: string): boolean => {
 };
 
 export const sleep = async (milliSeconds: number): Promise<NodeJS.Timeout> => {
-  return new Promise((resolve) => setTimeout(resolve as () => void, milliSeconds));
+  return new Promise<NodeJS.Timeout>((resolve) => setTimeout(resolve as () => void, milliSeconds));
 };
 
 export const formatDurationMilliSeconds = (duration: number): string => {
@@ -198,7 +198,7 @@ export const isCFEnvironment = (): boolean => {
 };
 
 export const isIterable = <T>(obj: T): boolean => {
-  return !isNullOrUndefined(obj) ? typeof obj[Symbol.iterator] === 'function' : false;
+  return !isNullOrUndefined(obj) ? typeof obj[Symbol.iterator as keyof T] === 'function' : false;
 };
 
 const isString = (value: unknown): boolean => {
@@ -332,8 +332,12 @@ export const getWebSocketCloseEventStatusString = (code: number): string => {
       return '(For applications)';
     }
   }
-  if (!isUndefined(WebSocketCloseEventStatusString[code])) {
-    return WebSocketCloseEventStatusString[code] as string;
+  if (
+    !isUndefined(
+      WebSocketCloseEventStatusString[code as keyof typeof WebSocketCloseEventStatusString],
+    )
+  ) {
+    return WebSocketCloseEventStatusString[code as keyof typeof WebSocketCloseEventStatusString];
   }
   return '(Unknown)';
 };