refactor: cleanup default params in error handlers
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 30 Jun 2024 11:44:21 +0000 (13:44 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 30 Jun 2024 11:44:21 +0000 (13:44 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/performance/storage/Storage.ts
src/utils/ErrorUtils.ts
src/utils/index.ts
tests/utils/ErrorUtils.test.ts

index ccdbb3f835411c27521e1c17df33002d7cfd259a..39d0a1b30250b80fd825351f4d476792ef89a3a6 100644 (file)
@@ -9,7 +9,7 @@ import {
   type Statistics,
   StorageType
 } from '../../types/index.js'
-import { logger, setDefaultErrorParams } from '../../utils/index.js'
+import { logger } from '../../utils/index.js'
 
 export abstract class Storage {
   protected readonly storageUri: URL
@@ -31,7 +31,13 @@ export abstract class Storage {
       consoleOut: false
     }
   ): void {
-    params = setDefaultErrorParams(params, { throwError: false, consoleOut: false })
+    params = {
+      ...{
+        throwError: false,
+        consoleOut: false
+      },
+      ...params
+    }
     const inTableOrCollectionStr = table != null && ` in table or collection '${table}'`
     logger.error(
       `${this.logPrefix} ${this.getDBNameFromStorageType(type)} error '${
index 0a444c6b1f5d945e5577dd7fbebc6ec235df16e6..fcbf92b272772cac2aa8ca6fd3ec51598c2a8620 100644 (file)
@@ -18,11 +18,6 @@ import { isNotEmptyString } from './Utils.js'
 
 const moduleName = 'ErrorUtils'
 
-const defaultErrorParams = {
-  throwError: true,
-  consoleOut: false
-} satisfies HandleErrorParams<EmptyObject>
-
 export const handleUncaughtException = (): void => {
   process.on('uncaughtException', (error: Error) => {
     console.error(chalk.red('Uncaught exception: '), error)
@@ -40,9 +35,15 @@ export const handleFileException = (
   fileType: FileType,
   error: NodeJS.ErrnoException,
   logPrefix: string,
-  params: HandleErrorParams<EmptyObject> = defaultErrorParams
+  params?: HandleErrorParams<EmptyObject>
 ): void => {
-  params = setDefaultErrorParams(params)
+  params = {
+    ...{
+      throwError: true,
+      consoleOut: false
+    },
+    ...params
+  }
   const prefix = isNotEmptyString(logPrefix) ? `${logPrefix} ` : ''
   let logMsg: string
   switch (error.code) {
@@ -85,12 +86,15 @@ export const handleSendMessageError = (
   commandName: RequestCommand | IncomingRequestCommand,
   messageType: MessageType,
   error: Error,
-  params: HandleErrorParams<EmptyObject> = {
-    throwError: false,
-    consoleOut: false
-  }
+  params?: HandleErrorParams<EmptyObject>
 ): void => {
-  params = setDefaultErrorParams(params, { throwError: false, consoleOut: false })
+  params = {
+    ...{
+      throwError: false,
+      consoleOut: false
+    },
+    ...params
+  }
   logger.error(
     `${chargingStation.logPrefix()} ${moduleName}.handleSendMessageError: Send ${getMessageTypeString(messageType)} command '${commandName}' error:`,
     error
@@ -104,9 +108,15 @@ export const handleIncomingRequestError = <T extends JsonType>(
   chargingStation: ChargingStation,
   commandName: IncomingRequestCommand,
   error: Error,
-  params: HandleErrorParams<T> = { throwError: true, consoleOut: false }
+  params?: HandleErrorParams<T>
 ): T | undefined => {
-  params = setDefaultErrorParams(params)
+  params = {
+    ...{
+      throwError: true,
+      consoleOut: false
+    },
+    ...params
+  }
   logger.error(
     `${chargingStation.logPrefix()} ${moduleName}.handleIncomingRequestError: Incoming request command '${commandName}' error:`,
     error
@@ -121,10 +131,3 @@ export const handleIncomingRequestError = <T extends JsonType>(
     return params.errorResponse
   }
 }
-
-export const setDefaultErrorParams = <T extends JsonType>(
-  params: HandleErrorParams<T>,
-  defaultParams: HandleErrorParams<T> = defaultErrorParams
-): HandleErrorParams<T> => {
-  return { ...defaultParams, ...params }
-}
index 5fedbc57e20ab849439f4628c28390b4433015f5..d6efcdc7d17111df6b2897e2866144c3f81341c5 100644 (file)
@@ -13,8 +13,7 @@ export {
   handleIncomingRequestError,
   handleSendMessageError,
   handleUncaughtException,
-  handleUnhandledRejection,
-  setDefaultErrorParams
+  handleUnhandledRejection
 } from './ErrorUtils.js'
 export { watchJsonFile } from './FileUtils.js'
 export { logger } from './Logger.js'
index edf088cf8cf8785605c570c5728616063601ef5d..7bbf4db2d700dc0b7effac670eb4e14668e598b1 100644 (file)
@@ -14,8 +14,7 @@ import {
 import {
   handleFileException,
   handleIncomingRequestError,
-  handleSendMessageError,
-  setDefaultErrorParams
+  handleSendMessageError
 } from '../../src/utils/ErrorUtils.js'
 import { logger } from '../../src/utils/Logger.js'
 
@@ -106,24 +105,4 @@ await describe('ErrorUtils test suite', async () => {
     expect(chargingStation.logPrefix.mock.calls.length).toBe(3)
     expect(logger.error.mock.calls.length).toBe(3)
   })
-
-  await it('Verify setDefaultErrorParams()', () => {
-    expect(setDefaultErrorParams({})).toStrictEqual({ throwError: true, consoleOut: false })
-    expect(setDefaultErrorParams({ throwError: false })).toStrictEqual({
-      throwError: false,
-      consoleOut: false
-    })
-    expect(setDefaultErrorParams({ throwError: false, consoleOut: true })).toStrictEqual({
-      throwError: false,
-      consoleOut: true
-    })
-    expect(setDefaultErrorParams({ throwError: true, consoleOut: true })).toStrictEqual({
-      throwError: true,
-      consoleOut: true
-    })
-    expect(setDefaultErrorParams({}, { throwError: false, consoleOut: false })).toStrictEqual({
-      throwError: false,
-      consoleOut: false
-    })
-  })
 })