X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FFileUtils.ts;h=8ef8168039b449e3bbd3d36c727852b07b413af8;hb=b9336eedb151ad0c6f519d977fdbddfedf3b7f2a;hp=0efccbc3c8ceeadf52ceaae6f2b0c83b1264e1c5;hpb=78202038ffd2aca15aa97f45bc66ba42f40f2ec4;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/FileUtils.ts b/src/utils/FileUtils.ts index 0efccbc3..8ef81680 100644 --- a/src/utils/FileUtils.ts +++ b/src/utils/FileUtils.ts @@ -1,4 +1,4 @@ -import fs from 'fs'; +import fs from 'node:fs'; import chalk from 'chalk'; @@ -15,28 +15,28 @@ export default class FileUtils { } public static watchJsonFile( - logPrefix: string, - fileType: FileType, file: string, + fileType: FileType, + logPrefix: string, refreshedVariable?: T, listener: fs.WatchListener = (event, filename) => { - if (filename && event === 'change') { + if (!Utils.isEmptyString(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, { + FileUtils.handleFileException(file, fileType, error as NodeJS.ErrnoException, logPrefix, { throwError: false, }); } } } - ): fs.FSWatcher { - if (file) { + ): fs.FSWatcher | undefined { + if (!Utils.isEmptyString(file)) { try { return fs.watch(file, listener); } catch (error) { - FileUtils.handleFileException(logPrefix, fileType, file, error as NodeJS.ErrnoException, { + FileUtils.handleFileException(file, fileType, error as NodeJS.ErrnoException, logPrefix, { throwError: false, }); } @@ -46,52 +46,35 @@ export default class FileUtils { } public static handleFileException( - logPrefix: string, - fileType: FileType, file: string, + fileType: FileType, error: NodeJS.ErrnoException, + logPrefix: string, params: HandleErrorParams = { 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); - } + const prefix = !Utils.isEmptyString(logPrefix) ? `${logPrefix} ` : ''; + 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; } } }