From f4c07fd2a4591a4dc9710c42b77f15714ae262b3 Mon Sep 17 00:00:00 2001 From: Wroud Date: Sat, 2 Jul 2022 21:45:29 +0300 Subject: [PATCH] feat(core-sdk): CB-1990 add mapArray / toArray for ResourceKeyUtils --- .../core-sdk/src/Resource/ResourceKeyList.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts b/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts index 06ffa64794..77b47b71cc 100644 --- a/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts +++ b/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts @@ -45,6 +45,8 @@ export interface ResourceKeyUtils { some: (key: ResourceKey, predicate: (key: TKey, index: number) => boolean) => boolean; every: (key: ResourceKey, predicate: (key: TKey, index: number) => boolean) => boolean; map: MapFnc; + toArray: (key: ResourceKey) => TKey[]; + mapArray: (key: ResourceKey, selector: (key: TKey, index: number) => TValue) => TValue[]; includes: (first: ResourceKey, second: ResourceKey) => boolean; exclude: (first: ResourceKeyList, second: ResourceKey) => ResourceKeyList; join: (...keys: Array>) => ResourceKeyList; @@ -125,6 +127,13 @@ export const ResourceKeyUtils: ResourceKeyUtils = { return predicate(key, -1); } }, + toArray(key: ResourceKey): TKey[] { + if (isResourceKeyList(key)) { + return key.list; + } else { + return [key]; + } + }, map(key: ResourceKey, selector: (key: TKey, index: number) => TValue): TValue | TValue[] { if (isResourceKeyList(key)) { @@ -134,6 +143,14 @@ export const ResourceKeyUtils: ResourceKeyUtils = { } }, + mapArray(key: ResourceKey, selector: (key: TKey, index: number) => TValue): TValue[] { + if (isResourceKeyList(key)) { + return key.list.map(selector); + } else { + return [selector(key, -1)]; + } + }, + includes(param: ResourceKey, key: ResourceKey): boolean { if (isResourceKeyList(param)) { return param.includes(key);