X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FConfiguration.ts;h=e115aeb324a12b9709682f49855e3eacadb9856f;hb=d972af76b6d7d1d2a099d254eacf45245b5316ac;hp=4f5e1ef143d96baf2828b3ce7169315049eec493;hpb=3d48c1c13adbe046643a952b1ddfce30c6cc0a97;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Configuration.ts b/src/utils/Configuration.ts index 4f5e1ef1..e115aeb3 100644 --- a/src/utils/Configuration.ts +++ b/src/utils/Configuration.ts @@ -1,5 +1,5 @@ -import fs from 'node:fs'; -import path from 'node:path'; +import { type FSWatcher, readFileSync, watch } from 'node:fs'; +import { dirname, join, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; import chalk from 'chalk'; @@ -23,13 +23,13 @@ import { import { WorkerConstants, WorkerProcessType } from '../worker'; export class Configuration { - private static configurationFile = path.join( - path.dirname(fileURLToPath(import.meta.url)), + private static configurationFile = join( + dirname(fileURLToPath(import.meta.url)), 'assets', 'config.json' ); - private static configurationFileWatcher: fs.FSWatcher | undefined; + private static configurationFileWatcher: FSWatcher | undefined; private static configuration: ConfigurationData | null = null; private static configurationChangeCallback: () => Promise; @@ -178,7 +178,7 @@ export class Configuration { Configuration.warnDeprecatedConfigurationKey( 'logRotate', undefined, - "Use 'log' section to define the log rotation instead" + "Use 'log' section to define the log rotation enablement instead" ); Configuration.warnDeprecatedConfigurationKey( 'logMaxFiles', @@ -234,7 +234,7 @@ export class Configuration { const logConfiguration: LogConfiguration = { ...defaultLogConfiguration, ...deprecatedLogConfiguration, - ...Configuration.getConfig()?.log, + ...(Utils.hasOwnProp(Configuration.getConfig(), 'log') && Configuration.getConfig()?.log), }; return logConfiguration; } @@ -321,7 +321,8 @@ export class Configuration { const workerConfiguration: WorkerConfiguration = { ...defaultWorkerConfiguration, ...deprecatedWorkerConfiguration, - ...Configuration.getConfig()?.worker, + ...(Utils.hasOwnProp(Configuration.getConfig(), 'worker') && + Configuration.getConfig()?.worker), }; return workerConfiguration; } @@ -403,7 +404,7 @@ export class Configuration { if (!Configuration.configuration) { try { Configuration.configuration = JSON.parse( - fs.readFileSync(Configuration.configurationFile, 'utf8') + readFileSync(Configuration.configurationFile, 'utf8') ) as ConfigurationData; } catch (error) { Configuration.handleFileException( @@ -420,9 +421,9 @@ export class Configuration { return Configuration.configuration; } - private static getConfigurationFileWatcher(): fs.FSWatcher | undefined { + private static getConfigurationFileWatcher(): FSWatcher | undefined { try { - return fs.watch(Configuration.configurationFile, (event, filename): void => { + return watch(Configuration.configurationFile, (event, filename): void => { if (filename?.trim().length > 0 && event === 'change') { // Nullify to force configuration file reading Configuration.configuration = null; @@ -475,11 +476,11 @@ export class Configuration { switch (storageType) { case StorageType.JSON_FILE: return Configuration.buildPerformanceUriFilePath( - Constants.DEFAULT_PERFORMANCE_RECORDS_FILENAME + `${Constants.DEFAULT_PERFORMANCE_DIRECTORY}/${Constants.DEFAULT_PERFORMANCE_RECORDS_FILENAME}` ); case StorageType.SQLITE: return Configuration.buildPerformanceUriFilePath( - `${Constants.DEFAULT_PERFORMANCE_RECORDS_DB_NAME}.db` + `${Constants.DEFAULT_PERFORMANCE_DIRECTORY}/${Constants.DEFAULT_PERFORMANCE_RECORDS_DB_NAME}.db` ); default: throw new Error(`Performance storage URI is mandatory with storage type '${storageType}'`); @@ -487,9 +488,6 @@ export class Configuration { } private static buildPerformanceUriFilePath(file: string) { - return `file://${path.join( - path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../'), - file - )}`; + return `file://${join(resolve(dirname(fileURLToPath(import.meta.url)), '../'), file)}`; } }