+ public static getConfigurationSection<T extends ConfigurationSectionType>(
+ sectionName: ConfigurationSection,
+ ): T {
+ if (!Configuration.isConfigurationSectionCached(sectionName)) {
+ Configuration.cacheConfigurationSection(sectionName);
+ }
+ return Configuration.configurationSectionCache.get(sectionName) as T;
+ }
+
+ public static getAutoReconnectMaxRetries(): number | undefined {
+ Configuration.warnDeprecatedConfigurationKey(
+ 'autoReconnectTimeout',
+ undefined,
+ "Use 'ConnectionTimeOut' OCPP parameter in charging station template instead",
+ );
+ Configuration.warnDeprecatedConfigurationKey(
+ 'connectionTimeout',
+ undefined,
+ "Use 'ConnectionTimeOut' OCPP parameter in charging station template instead",
+ );
+ Configuration.warnDeprecatedConfigurationKey(
+ 'autoReconnectMaxRetries',
+ undefined,
+ 'Use it in charging station template instead',
+ );
+ if (hasOwnProp(Configuration.getConfigurationData(), 'autoReconnectMaxRetries')) {
+ return Configuration.getConfigurationData()?.autoReconnectMaxRetries;
+ }
+ }
+
+ public static getStationTemplateUrls(): StationTemplateUrl[] | undefined {
+ Configuration.warnDeprecatedConfigurationKey(
+ 'stationTemplateURLs',
+ undefined,
+ "Use 'stationTemplateUrls' instead",
+ );
+ // eslint-disable-next-line @typescript-eslint/dot-notation
+ !isUndefined(
+ Configuration.getConfigurationData()!['stationTemplateURLs' as keyof ConfigurationData],
+ ) &&
+ (Configuration.getConfigurationData()!.stationTemplateUrls =
+ Configuration.getConfigurationData()![
+ // eslint-disable-next-line @typescript-eslint/dot-notation
+ 'stationTemplateURLs' as keyof ConfigurationData
+ ] as StationTemplateUrl[]);
+ Configuration.getConfigurationData()!.stationTemplateUrls.forEach(
+ (stationTemplateUrl: StationTemplateUrl) => {
+ // eslint-disable-next-line @typescript-eslint/dot-notation
+ 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`,
+ )}`,
+ );
+ }
+ },
+ );
+ return Configuration.getConfigurationData()?.stationTemplateUrls;
+ }
+
+ public static getSupervisionUrls(): string | string[] | undefined {
+ Configuration.warnDeprecatedConfigurationKey(
+ 'supervisionURLs',
+ undefined,
+ "Use 'supervisionUrls' instead",
+ );
+ // eslint-disable-next-line @typescript-eslint/dot-notation
+ if (
+ !isUndefined(
+ Configuration.getConfigurationData()!['supervisionURLs' as keyof ConfigurationData],
+ )
+ ) {
+ Configuration.getConfigurationData()!.supervisionUrls = Configuration.getConfigurationData()![
+ // eslint-disable-next-line @typescript-eslint/dot-notation
+ 'supervisionURLs' as keyof ConfigurationData
+ ] as string | string[];
+ }
+ return Configuration.getConfigurationData()?.supervisionUrls;
+ }
+
+ public static getSupervisionUrlDistribution(): SupervisionUrlDistribution | undefined {