]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
refactor(cli): extract extractErrorMessage utility
authorJérôme Benoit <jerome.benoit@sap.com>
Thu, 16 Apr 2026 20:26:06 +0000 (22:26 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Thu, 16 Apr 2026 20:26:06 +0000 (22:26 +0200)
Create ui/cli/src/utils/errors.ts with extractErrorMessage(error: unknown): string
and replace 3 inline occurrences of the pattern across formatter.ts, json.ts,
and loader.ts.

ui/cli/src/config/loader.ts
ui/cli/src/output/formatter.ts
ui/cli/src/output/json.ts
ui/cli/src/utils/errors.ts [new file with mode: 0644]

index 423106e1c2d7ff3c7247876c882ee4100ff139ec..56d9e59a8fe99ceb0cd487d68b052e7a33272187 100644 (file)
@@ -9,6 +9,7 @@ import {
   type UIServerConfigurationSection,
 } from 'ui-common'
 
+import { extractErrorMessage } from '../utils/errors.js'
 import { DEFAULT_PROTOCOL, DEFAULT_SECURE, DEFAULT_VERSION } from './defaults.js'
 
 interface LoadConfigOptions {
@@ -69,7 +70,7 @@ const loadConfigFile = async (
       configPath != null ||
       !(error instanceof Error && 'code' in error && error.code === 'ENOENT')
     ) {
-      const message = error instanceof Error ? error.message : String(error)
+      const message = extractErrorMessage(error)
       const context = configPath != null ? `'${configPath}'` : `'${targetPath}'`
       throw new Error(`Failed to load configuration file ${context}: ${message}`, { cause: error })
     }
index 3540b5b14e89d498164bc10cd367a29270adebc7..d3ae953a699445c6e9677f4b104862c5e3b4e4dc 100644 (file)
@@ -1,5 +1,6 @@
 import type { ResponsePayload } from 'ui-common'
 
+import { extractErrorMessage } from '../utils/errors.js'
 import { printError } from './human.js'
 import { outputJson, outputJsonError } from './json.js'
 import { outputTable } from './table.js'
@@ -18,7 +19,7 @@ export const createFormatter = (jsonMode: boolean): Formatter => {
   }
   return {
     error: (error: unknown) => {
-      const message = error instanceof Error ? error.message : String(error)
+      const message = extractErrorMessage(error)
       printError(message)
     },
     output: outputTable,
index e62f8ae4b1bc3e833ba1e72fdee554e5329c8949..9287e761b1096405965fb79296c957bc0e3f28e5 100644 (file)
@@ -1,12 +1,14 @@
 import process from 'node:process'
 import { type ResponsePayload, ResponseStatus } from 'ui-common'
 
+import { extractErrorMessage } from '../utils/errors.js'
+
 export const outputJson = (payload: ResponsePayload): void => {
   process.stdout.write(JSON.stringify(payload, null, 2) + '\n')
 }
 
 export const outputJsonError = (error: unknown): void => {
-  const message = error instanceof Error ? error.message : String(error)
+  const message = extractErrorMessage(error)
   process.stdout.write(
     JSON.stringify({ error: true, message, status: ResponseStatus.FAILURE }, null, 2) + '\n'
   )
diff --git a/ui/cli/src/utils/errors.ts b/ui/cli/src/utils/errors.ts
new file mode 100644 (file)
index 0000000..d3e998c
--- /dev/null
@@ -0,0 +1,2 @@
+export const extractErrorMessage = (error: unknown): string =>
+  error instanceof Error ? error.message : String(error)