aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/core-utils/common/object.ts
diff options
context:
space:
mode:
Diffstat (limited to 'shared/core-utils/common/object.ts')
-rw-r--r--shared/core-utils/common/object.ts10
1 files changed, 10 insertions, 0 deletions
diff --git a/shared/core-utils/common/object.ts b/shared/core-utils/common/object.ts
index 9780b2594..1276bfcc7 100644
--- a/shared/core-utils/common/object.ts
+++ b/shared/core-utils/common/object.ts
@@ -23,10 +23,18 @@ function omit <O extends object, K extends keyof O> (object: O, keys: K[]): Excl
23 return result 23 return result
24} 24}
25 25
26function objectKeysTyped <O extends object, K extends keyof O> (object: O): K[] {
27 return (Object.keys(object) as K[])
28}
29
26function getKeys <O extends object, K extends keyof O> (object: O, keys: K[]): K[] { 30function getKeys <O extends object, K extends keyof O> (object: O, keys: K[]): K[] {
27 return (Object.keys(object) as K[]).filter(k => keys.includes(k)) 31 return (Object.keys(object) as K[]).filter(k => keys.includes(k))
28} 32}
29 33
34function hasKey <T extends object> (obj: T, k: keyof any): k is keyof T {
35 return k in obj
36}
37
30function sortObjectComparator (key: string, order: 'asc' | 'desc') { 38function sortObjectComparator (key: string, order: 'asc' | 'desc') {
31 return (a: any, b: any) => { 39 return (a: any, b: any) => {
32 if (a[key] < b[key]) { 40 if (a[key] < b[key]) {
@@ -69,7 +77,9 @@ function simpleObjectsDeepEqual (a: any, b: any) {
69export { 77export {
70 pick, 78 pick,
71 omit, 79 omit,
80 objectKeysTyped,
72 getKeys, 81 getKeys,
82 hasKey,
73 shallowCopy, 83 shallowCopy,
74 sortObjectComparator, 84 sortObjectComparator,
75 simpleObjectsDeepEqual 85 simpleObjectsDeepEqual