Fix file error handling propagation
authorJérôme Benoit <jerome.benoit@sap.com>
Mon, 23 Jan 2023 13:49:47 +0000 (14:49 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Mon, 23 Jan 2023 13:49:47 +0000 (14:49 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/utils/Configuration.ts
src/utils/FileUtils.ts

index f1f43bcfff188f353c10534199895533a34b25fe..9586a86879b06ea62c264932a6aa771de5f89d68 100644 (file)
@@ -422,27 +422,21 @@ export default class Configuration {
     params: HandleErrorParams<EmptyObject> = { throwError: true }
   ): void {
     const prefix = logPrefix.length !== 0 ? logPrefix + ' ' : '';
-    if (error.code === 'ENOENT') {
-      console.error(
-        chalk.green(prefix) + chalk.red(fileType + ' file ' + filePath + ' not found: '),
-        error
-      );
-    } else if (error.code === 'EEXIST') {
-      console.error(
-        chalk.green(prefix) + chalk.red(fileType + ' file ' + filePath + ' already exists: '),
-        error
-      );
-    } else if (error.code === 'EACCES') {
-      console.error(
-        chalk.green(prefix) + chalk.red(fileType + ' file ' + filePath + ' access denied: '),
-        error
-      );
-    } else {
-      console.error(
-        chalk.green(prefix) + chalk.red(fileType + ' file ' + filePath + ' error: '),
-        error
-      );
+    let logMsg: string;
+    switch (error.code) {
+      case 'ENOENT':
+        logMsg = `${fileType} file ${filePath} not found: `;
+        break;
+      case 'EEXIST':
+        logMsg = `${fileType} file ${filePath} already exists: `;
+        break;
+      case 'EACCES':
+        logMsg = `${fileType} file ${filePath} access denied: `;
+        break;
+      default:
+        logMsg = `${fileType} file ${filePath} error: `;
     }
+    console.error(`${chalk.green(prefix)}${chalk.red(logMsg)}`, error);
     if (params?.throwError) {
       throw error;
     }
index 0efccbc3c8ceeadf52ceaae6f2b0c83b1264e1c5..87a8733b08f7e9108eb39f81b4d809200fb016d6 100644 (file)
@@ -22,7 +22,7 @@ export default class FileUtils {
     listener: fs.WatchListener<string> = (event, filename) => {
       if (filename && event === 'change') {
         try {
-          logger.debug(logPrefix + ' ' + fileType + ' file ' + file + ' have changed, reload');
+          logger.debug(`${logPrefix} ${fileType} file ${file} + ' have changed, reload'`);
           refreshedVariable && (refreshedVariable = JSON.parse(fs.readFileSync(file, 'utf8')) as T);
         } catch (error) {
           FileUtils.handleFileException(logPrefix, fileType, file, error as NodeJS.ErrnoException, {
@@ -53,45 +53,28 @@ export default class FileUtils {
     params: HandleErrorParams<EmptyObject> = { throwError: true, consoleOut: false }
   ): void {
     const prefix = !Utils.isEmptyString(logPrefix) ? logPrefix + ' ' : '';
-    if (error.code === 'ENOENT') {
-      if (params?.consoleOut) {
-        console.warn(
-          chalk.green(prefix) + chalk.yellow(fileType + ' file ' + file + ' not found: '),
-          error
-        );
-      } else {
-        logger.warn(prefix + fileType + ' file ' + file + ' not found:', error);
-      }
-    } else if (error.code === 'EEXIST') {
-      if (params?.consoleOut) {
-        console.warn(
-          chalk.green(prefix) + chalk.yellow(fileType + ' file ' + file + ' already exists: '),
-          error
-        );
-      } else {
-        logger.warn(prefix + fileType + ' file ' + file + ' already exists:', error);
-      }
-    } else if (error.code === 'EACCES') {
-      if (params?.consoleOut) {
-        console.warn(
-          chalk.green(prefix) + chalk.yellow(fileType + ' file ' + file + ' access denied: '),
-          error
-        );
-      } else {
-        logger.warn(prefix + fileType + ' file ' + file + ' access denied:', error);
-      }
+    let logMsg: string;
+    switch (error.code) {
+      case 'ENOENT':
+        logMsg = `${fileType} file ${file} not found:`;
+        break;
+      case 'EEXIST':
+        logMsg = `${fileType} file ${file} already exists:`;
+        break;
+      case 'EACCES':
+        logMsg = `${fileType} file ${file} access denied:`;
+        break;
+      default:
+        logMsg = `${fileType} file ${file} error:`;
+    }
+    if (params?.consoleOut) {
+      logMsg = `${logMsg} `;
+      console.warn(`${chalk.green(prefix)}${chalk.yellow(logMsg)}`, error);
     } else {
-      if (params?.consoleOut) {
-        console.warn(
-          chalk.green(prefix) + chalk.yellow(fileType + ' file ' + file + ' error: '),
-          error
-        );
-      } else {
-        logger.warn(prefix + fileType + ' file ' + file + ' error:', error);
-      }
-      if (params?.throwError) {
-        throw error;
-      }
+      logger.warn(`${prefix}${logMsg}`, error);
+    }
+    if (params?.throwError) {
+      throw error;
     }
   }
 }