import { LRUMapWithDelete as LRUCache } from 'mnemonist'
+import { isEmpty } from 'rambda'
-import { Bootstrap } from './Bootstrap.js'
import type { ChargingStationConfiguration, ChargingStationTemplate } from '../types/index.js'
-import {
- isEmptyObject,
- isNotEmptyArray,
- isNotEmptyString,
- isNullOrUndefined
-} from '../utils/index.js'
+import { isNotEmptyArray, isNotEmptyString } from '../utils/index.js'
+import { Bootstrap } from './Bootstrap.js'
enum CacheType {
chargingStationTemplate = 'chargingStationTemplate',
- chargingStationConfiguration = 'chargingStationConfiguration',
+ chargingStationConfiguration = 'chargingStationConfiguration'
}
type CacheValueType = ChargingStationTemplate | ChargingStationConfiguration
private constructor () {
this.lruCache = new LRUCache<string, CacheValueType>(
Bootstrap.getInstance().numberOfChargingStationTemplates +
- Bootstrap.getInstance().numberOfChargingStations
+ Bootstrap.getInstance().numberOfConfiguredChargingStations +
+ Bootstrap.getInstance().numberOfProvisionedChargingStations
)
}
chargingStationConfiguration: ChargingStationConfiguration
): boolean {
return (
- !isNullOrUndefined(chargingStationConfiguration?.configurationKey) &&
- !isNullOrUndefined(chargingStationConfiguration?.stationInfo) &&
- !isNullOrUndefined(chargingStationConfiguration?.automaticTransactionGenerator) &&
- !isNullOrUndefined(chargingStationConfiguration?.configurationHash) &&
- isNotEmptyArray(chargingStationConfiguration?.configurationKey) &&
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- !isEmptyObject(chargingStationConfiguration.stationInfo!) &&
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- !isEmptyObject(chargingStationConfiguration.automaticTransactionGenerator!) &&
- isNotEmptyString(chargingStationConfiguration?.configurationHash)
+ chargingStationConfiguration.configurationKey != null &&
+ chargingStationConfiguration.stationInfo != null &&
+ chargingStationConfiguration.automaticTransactionGenerator != null &&
+ chargingStationConfiguration.configurationHash != null &&
+ isNotEmptyArray(chargingStationConfiguration.configurationKey) &&
+ !isEmpty(chargingStationConfiguration.stationInfo) &&
+ !isEmpty(chargingStationConfiguration.automaticTransactionGenerator) &&
+ isNotEmptyString(chargingStationConfiguration.configurationHash)
)
}
}