import LRUCache from 'mnemonist/lru-map-with-delete';
-import type { ChargingStationConfiguration } from '../types/ChargingStationConfiguration';
-import type { ChargingStationTemplate } from '../types/ChargingStationTemplate';
-import Utils from '../utils/Utils';
+import { Bootstrap } from './internal';
+import type { ChargingStationConfiguration, ChargingStationTemplate } from '../types';
+import { Utils } from '../utils';
enum CacheType {
CHARGING_STATION_TEMPLATE = 'chargingStationTemplate',
type CacheableType = ChargingStationTemplate | ChargingStationConfiguration;
-export default class SharedLRUCache {
+export class SharedLRUCache {
private static instance: SharedLRUCache | null = null;
private readonly lruCache: LRUCache<string, CacheableType>;
private constructor() {
- this.lruCache = new LRUCache<string, CacheableType>(1000);
+ this.lruCache = new LRUCache<string, CacheableType>(
+ Bootstrap.getInstance().numberOfChargingStationTemplates +
+ Bootstrap.getInstance().numberOfChargingStations
+ );
}
public static getInstance(): SharedLRUCache {
return this.lruCache.has(key);
}
- private get(key: string): CacheableType {
+ private get(key: string): CacheableType | undefined {
return this.lruCache.get(key);
}
Utils.isNullOrUndefined(chargingStationConfiguration?.configurationKey) === false &&
Utils.isNullOrUndefined(chargingStationConfiguration?.stationInfo) === false &&
Utils.isNullOrUndefined(chargingStationConfiguration?.configurationHash) === false &&
- Utils.isEmptyArray(chargingStationConfiguration?.configurationKey) === false &&
+ Utils.isNotEmptyArray(chargingStationConfiguration?.configurationKey) === true &&
Utils.isEmptyObject(chargingStationConfiguration?.stationInfo) === false &&
- Utils.isEmptyString(chargingStationConfiguration?.configurationHash) === false
+ Utils.isNotEmptyString(chargingStationConfiguration?.configurationHash) === true
);
}
}