export class ResolverCacheManager { cacheDataList: Map = new Map(); load(key: object | string): ResolverCacheManagerCacheData { if (this.cacheDataList.has(key)) { return this.cacheDataList.get(key) as ResolverCacheManagerCacheData; } const newResolverCacheDataManager = new ResolverCacheManagerCacheData(); this.cacheDataList.set(key, newResolverCacheDataManager); return newResolverCacheDataManager; } } export class ResolverCacheManagerCacheData { data: unknown; get hasData() { return !!this.data; } cacheAndReturnData(data: T) { this.data = data; return data; } }