fix: add date validation check in date conversion helper
authorJérôme Benoit <jerome.benoit@sap.com>
Sun, 30 Jul 2023 22:48:31 +0000 (00:48 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Sun, 30 Jul 2023 22:48:31 +0000 (00:48 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/utils/Utils.ts

index c5a276bc92609e21bb55f79f2df4549a5f0fe447..b619144bd5beab7045bb0ff2deae16e5b141e106 100644 (file)
@@ -80,7 +80,11 @@ export const convertToDate = (
     return value as Date;
   }
   if (isString(value) || typeof value === 'number') {
-    return new Date(value!);
+    value = new Date(value as string | number);
+    if (isNaN(value.getTime())) {
+      throw new Error(`Cannot convert to date: ${String(value)}`);
+    }
+    return value;
   }
   return null;
 };
@@ -100,8 +104,7 @@ export const convertToInt = (value: unknown): number => {
     changedValue = parseInt(value as string);
   }
   if (isNaN(changedValue)) {
-    // eslint-disable-next-line @typescript-eslint/no-base-to-string
-    throw new Error(`Cannot convert to integer: ${value.toString()}`);
+    throw new Error(`Cannot convert to integer: ${String(value)}`);
   }
   return changedValue;
 };
@@ -115,8 +118,7 @@ export const convertToFloat = (value: unknown): number => {
     changedValue = parseFloat(value as string);
   }
   if (isNaN(changedValue)) {
-    // eslint-disable-next-line @typescript-eslint/no-base-to-string
-    throw new Error(`Cannot convert to float: ${value.toString()}`);
+    throw new Error(`Cannot convert to float: ${String(value)}`);
   }
   return changedValue;
 };