X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FConfiguration.ts;h=f03e0472570ec0af65a1a0dd070d57a8131fd911;hb=ec4a242aa5f1a9d4201d0ec9988f9dd931978589;hp=4aaa2250dc77169cf0113b0958ce23738680da26;hpb=c96b764e304602bb2ceac55454fa460c066acdc5;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Configuration.ts b/src/utils/Configuration.ts index 4aaa2250..f03e0472 100644 --- a/src/utils/Configuration.ts +++ b/src/utils/Configuration.ts @@ -35,8 +35,8 @@ export class Configuration { 'config.json', ); - private static configurationFileWatcher: FSWatcher | undefined; - private static configurationData: ConfigurationData | null = null; + private static configurationFileWatcher?: FSWatcher; + private static configurationData?: ConfigurationData; private static configurationSectionCache = new Map< ConfigurationSection, ConfigurationSectionType @@ -119,16 +119,18 @@ export class Configuration { "Use 'stationTemplateUrls' instead", ); // eslint-disable-next-line @typescript-eslint/dot-notation - !isUndefined(Configuration.getConfigurationData()!['stationTemplateURLs']) && + !isUndefined( + Configuration.getConfigurationData()!['stationTemplateURLs' as keyof ConfigurationData], + ) && (Configuration.getConfigurationData()!.stationTemplateUrls = Configuration.getConfigurationData()![ // eslint-disable-next-line @typescript-eslint/dot-notation - 'stationTemplateURLs' + 'stationTemplateURLs' as keyof ConfigurationData ] as StationTemplateUrl[]); Configuration.getConfigurationData()!.stationTemplateUrls.forEach( (stationTemplateUrl: StationTemplateUrl) => { // eslint-disable-next-line @typescript-eslint/dot-notation - if (!isUndefined(stationTemplateUrl['numberOfStation'])) { + if (!isUndefined(stationTemplateUrl['numberOfStation' as keyof StationTemplateUrl])) { console.error( `${chalk.green(Configuration.logPrefix())} ${chalk.red( `Deprecated configuration key 'numberOfStation' usage for template file '${stationTemplateUrl.file}' in 'stationTemplateUrls'. Use 'numberOfStations' instead`, @@ -147,10 +149,14 @@ export class Configuration { "Use 'supervisionUrls' instead", ); // eslint-disable-next-line @typescript-eslint/dot-notation - if (!isUndefined(Configuration.getConfigurationData()!['supervisionURLs'])) { + if ( + !isUndefined( + Configuration.getConfigurationData()!['supervisionURLs' as keyof ConfigurationData], + ) + ) { Configuration.getConfigurationData()!.supervisionUrls = Configuration.getConfigurationData()![ // eslint-disable-next-line @typescript-eslint/dot-notation - 'supervisionURLs' + 'supervisionURLs' as keyof ConfigurationData ] as string | string[]; } return Configuration.getConfigurationData()?.supervisionUrls; @@ -445,9 +451,14 @@ export class Configuration { ) { if ( sectionName && - !isUndefined(Configuration.getConfigurationData()![sectionName]) && + !isUndefined(Configuration.getConfigurationData()![sectionName as keyof ConfigurationData]) && !isUndefined( - (Configuration.getConfigurationData()![sectionName] as Record)[key], + ( + Configuration.getConfigurationData()![sectionName as keyof ConfigurationData] as Record< + string, + unknown + > + )[key], ) ) { console.error( @@ -457,7 +468,9 @@ export class Configuration { }`, )}`, ); - } else if (!isUndefined(Configuration.getConfigurationData()![key])) { + } else if ( + !isUndefined(Configuration.getConfigurationData()![key as keyof ConfigurationData]) + ) { console.error( `${chalk.green(Configuration.logPrefix())} ${chalk.red( `Deprecated configuration key '${key}' usage${ @@ -468,7 +481,7 @@ export class Configuration { } } - private static getConfigurationData(): ConfigurationData | null { + private static getConfigurationData(): ConfigurationData | undefined { if (!Configuration.configurationData) { try { Configuration.configurationData = JSON.parse( @@ -493,8 +506,7 @@ export class Configuration { try { return watch(Configuration.configurationFile, (event, filename): void => { if (filename!.trim()!.length > 0 && event === 'change') { - // Nullify to force configuration file reading - Configuration.configurationData = null; + delete Configuration.configurationData; Configuration.configurationSectionCache.clear(); if (!isUndefined(Configuration.configurationChangeCallback)) { Configuration.configurationChangeCallback().catch((error) => {