'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
"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`,
"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;
) {
if (
sectionName &&
- !isUndefined(Configuration.getConfigurationData()![sectionName]) &&
+ !isUndefined(Configuration.getConfigurationData()![sectionName as keyof ConfigurationData]) &&
!isUndefined(
- (Configuration.getConfigurationData()![sectionName] as Record<string, unknown>)[key],
+ (
+ Configuration.getConfigurationData()![sectionName as keyof ConfigurationData] as Record<
+ string,
+ unknown
+ >
+ )[key],
)
) {
console.error(
}`,
)}`,
);
- } 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${
}
}
- private static getConfigurationData(): ConfigurationData | null {
+ private static getConfigurationData(): ConfigurationData | undefined {
if (!Configuration.configurationData) {
try {
Configuration.configurationData = JSON.parse(
readFileSync(Configuration.configurationFile, 'utf8'),
) as ConfigurationData;
+ if (!Configuration.configurationFileWatcher) {
+ Configuration.configurationFileWatcher = Configuration.getConfigurationFileWatcher();
+ }
} catch (error) {
Configuration.handleFileException(
Configuration.configurationFile,
Configuration.logPrefix(),
);
}
- if (!Configuration.configurationFileWatcher) {
- Configuration.configurationFileWatcher = Configuration.getConfigurationFileWatcher();
- }
}
return Configuration.configurationData;
}
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) => {