feat: allow to provision number of stations by template
[e-mobility-charging-stations-simulator.git] / src / charging-station / SharedLRUCache.ts
index 6985e707a34554b62ef96b3505721ca271d6293d..0da4558d4d46f4c4bd3d98f92eb2a7677856517d 100644 (file)
@@ -1,13 +1,9 @@
 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',
@@ -23,7 +19,8 @@ export class SharedLRUCache {
   private constructor () {
     this.lruCache = new LRUCache<string, CacheValueType>(
       Bootstrap.getInstance().numberOfChargingStationTemplates +
-        Bootstrap.getInstance().numberOfChargingStations
+        Bootstrap.getInstance().numberOfConfiguredChargingStations +
+        Bootstrap.getInstance().numberOfProvisionedChargingStations
     )
   }
 
@@ -116,16 +113,14 @@ export class SharedLRUCache {
     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)
     )
   }
 }