feat: allow to provision number of stations by template
[e-mobility-charging-stations-simulator.git] / src / charging-station / SharedLRUCache.ts
index fcda613ecc433f894f1c6adda8176bcd311dc932..0da4558d4d46f4c4bd3d98f92eb2a7677856517d 100644 (file)
@@ -1,12 +1,13 @@
 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 } 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
@@ -18,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,8 +118,8 @@ export class SharedLRUCache {
       chargingStationConfiguration.automaticTransactionGenerator != null &&
       chargingStationConfiguration.configurationHash != null &&
       isNotEmptyArray(chargingStationConfiguration.configurationKey) &&
-      !isEmptyObject(chargingStationConfiguration.stationInfo) &&
-      !isEmptyObject(chargingStationConfiguration.automaticTransactionGenerator) &&
+      !isEmpty(chargingStationConfiguration.stationInfo) &&
+      !isEmpty(chargingStationConfiguration.automaticTransactionGenerator) &&
       isNotEmptyString(chargingStationConfiguration.configurationHash)
     )
   }