fix(core-sdk): CB-2420 empty resource key list compare

This commit is contained in:
Wroud
2022-08-23 10:27:10 +03:00
parent eb6bb9e995
commit b1fbe9eb83
2 changed files with 15 additions and 0 deletions
@@ -374,6 +374,10 @@ export abstract class CachedMapResource<
return this.isAliasEqual(param, key);
}
if (ResourceKeyUtils.isEmpty(param) || ResourceKeyUtils.isEmpty(key)) {
return ResourceKeyUtils.isEmpty(param) && ResourceKeyUtils.isEmpty(key);
}
param = ResourceKeyUtils.mapKey(param, this.getKeyRef.bind(this));
key = ResourceKeyUtils.mapKey(key, this.getKeyRef.bind(this));
@@ -41,6 +41,7 @@ interface MapFnc {
}
export interface ResourceKeyUtils {
isEmpty: <TKey>(key: ResourceKey<TKey>) => boolean;
hasMark: <TKey>(key: ResourceKey<TKey>, mark: any) => boolean;
count: <TKey>(key: ResourceKey<TKey>) => number;
first: <TKey>(key: ResourceKey<TKey>) => TKey;
@@ -65,6 +66,16 @@ export interface ResourceKeyUtils {
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const ResourceKeyUtils: ResourceKeyUtils = {
isEmpty<TKey>(
key: ResourceKey<TKey>
): boolean {
if (isResourceKeyList(key)) {
return key.list.length === 0;
} else {
return false;
}
},
hasMark<TKey>(
key: ResourceKey<TKey>,
mark: any