X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FFileUtils.ts;h=38df26a9eb23419de11c4040a39170f7104978a2;hb=78085c42a98966f7118f2575b2fde9a386399c94;hp=b3940b718e2a2c0240808b0ee8aaf807b5707bfe;hpb=72f041bd50fc25ca5d233565cbc0ea836220ec0f;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/FileUtils.ts b/src/utils/FileUtils.ts index b3940b71..38df26a9 100644 --- a/src/utils/FileUtils.ts +++ b/src/utils/FileUtils.ts @@ -1,33 +1,57 @@ +import { EmptyObject } from '../types/EmptyObject'; +import { HandleErrorParams } from '../types/Error'; +import Utils from './Utils'; +import chalk from 'chalk'; import logger from './Logger'; export default class FileUtils { - static handleFileException(logPrefix: string, fileType: string, filePath: string, error: NodeJS.ErrnoException, consoleOut = false): void { - const prefix = logPrefix.length !== 0 ? logPrefix + ' ' : ''; + static handleFileException( + logPrefix: string, + fileType: string, + filePath: string, + error: NodeJS.ErrnoException, + params: HandleErrorParams = { throwError: true, consoleOut: false } + ): void { + const prefix = !Utils.isEmptyString(logPrefix) ? logPrefix + ' ' : ''; if (error.code === 'ENOENT') { - if (consoleOut) { - console.warn(prefix + fileType + ' file ' + filePath + ' not found: ', error); + if (params?.consoleOut) { + console.warn( + chalk.green(prefix) + chalk.yellow(fileType + ' file ' + filePath + ' not found: '), + error + ); } else { logger.warn(prefix + fileType + ' file ' + filePath + ' not found: %j', error); } } else if (error.code === 'EEXIST') { - if (consoleOut) { - console.warn(prefix + fileType + ' file ' + filePath + ' already exists: ', error); + if (params?.consoleOut) { + console.warn( + chalk.green(prefix) + chalk.yellow(fileType + ' file ' + filePath + ' already exists: '), + error + ); } else { logger.warn(prefix + fileType + ' file ' + filePath + ' already exists: %j', error); } } else if (error.code === 'EACCES') { - if (consoleOut) { - console.warn(prefix + fileType + ' file ' + filePath + ' access denied: ', error); + if (params?.consoleOut) { + console.warn( + chalk.green(prefix) + chalk.yellow(fileType + ' file ' + filePath + ' access denied: '), + error + ); } else { logger.warn(prefix + fileType + ' file ' + filePath + ' access denied: %j', error); } } else { - if (consoleOut) { - console.error(prefix + fileType + ' file ' + filePath + ' error: ', error); + if (params?.consoleOut) { + console.warn( + chalk.green(prefix) + chalk.yellow(fileType + ' file ' + filePath + ' error: '), + error + ); } else { - logger.error(prefix + fileType + ' file ' + filePath + ' error: %j', error); + logger.warn(prefix + fileType + ' file ' + filePath + ' error: %j', error); + } + if (params?.throwError) { + throw error; } - throw error; } } }