@nordcraft/core 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,15 +8,15 @@ export declare const mapValues: <T, T2>(object: Record<string, T>, f: (value: T)
|
|
|
8
8
|
* @param path Path to the key to delete. For instance ['foo', 0, 'bar']
|
|
9
9
|
* @returns The updated object/array
|
|
10
10
|
*/
|
|
11
|
-
export declare const omit: <T = object>(collection: T, [key, ...rest]:
|
|
11
|
+
export declare const omit: <T = object>(collection: T, [key, ...rest]: PropertyKey[]) => T;
|
|
12
12
|
export declare const omitKeys: <T extends Record<string, any>>(object: T, keys: (keyof T)[]) => T;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
13
|
+
type ValidPath<T> = [] | [keyof T, ...PropertyKey[]];
|
|
14
|
+
export declare const omitPaths: <T extends Record<string, any>>(object: T, keys: ValidPath<T>[]) => T;
|
|
16
15
|
export declare const groupBy: <T>(items: T[], f: (t: T) => string) => Record<string, T[]>;
|
|
17
16
|
export declare const filterObject: <T>(object: Record<string, T>, f: (kv: [string, T]) => boolean) => Record<string, T>;
|
|
18
|
-
export declare function get<T = any>(collection: T, [head, ...rest]: Array<
|
|
19
|
-
export declare const set: <T = unknown>(collection: T, key:
|
|
17
|
+
export declare function get<T = any>(collection: T, [head, ...rest]: Array<PropertyKey>): any;
|
|
18
|
+
export declare const set: <T = unknown>(collection: T, key: PropertyKey[], value: any) => T;
|
|
20
19
|
export declare const sortObjectEntries: <T>(object: Record<string, T>, f: (kv: [string, T]) => string | number | boolean, ascending?: boolean) => [string, T][];
|
|
21
20
|
export declare const easySort: <T>(collection: T[], f: (item: T) => string | number | boolean, ascending?: boolean) => T[];
|
|
22
21
|
export declare const deepSortObject: (obj: any) => Nullable<any[] | Record<string, any>>;
|
|
22
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/utils/collections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAgC,EAAE,CACnE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAAyB,EACzB,CAAoC,EAChB,EAAE;IACtB,MAAM,MAAM,GAAuB,EAAE,CAAA;IACrC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAM,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACf,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAAyB,EACzB,CAAmB,EACC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,UAAa,EACb,CAAC,GAAG,EAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/utils/collections.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/utils/collections.ts
CHANGED
|
@@ -29,7 +29,7 @@ export const mapValues = <T, T2>(
|
|
|
29
29
|
*/
|
|
30
30
|
export const omit = <T = object>(
|
|
31
31
|
collection: T,
|
|
32
|
-
[key, ...rest]: Array<
|
|
32
|
+
[key, ...rest]: Array<PropertyKey>,
|
|
33
33
|
): T => {
|
|
34
34
|
if (rest.length > 0) {
|
|
35
35
|
const clone: any = Array.isArray(collection)
|
|
@@ -60,8 +60,12 @@ export const omitKeys = <T extends Record<string, any>>(
|
|
|
60
60
|
Object.entries(object).filter(([k]) => !keys.includes(k)),
|
|
61
61
|
) as T
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
// This adds type safety to the omitPaths function, ensuring that the first key in the path is a valid key of the object, while the rest of the keys can be any property key. Empty paths are also allowed.
|
|
64
|
+
type ValidPath<T> = [] | [keyof T, ...PropertyKey[]]
|
|
65
|
+
export const omitPaths = <T extends Record<string, any>>(
|
|
66
|
+
object: T,
|
|
67
|
+
keys: Array<ValidPath<T>>,
|
|
68
|
+
): T => keys.reduce((acc, key) => omit(acc, key), { ...object })
|
|
65
69
|
|
|
66
70
|
export const groupBy = <T>(items: T[], f: (t: T) => string) =>
|
|
67
71
|
items.reduce<Record<string, T[]>>((acc, item) => {
|
|
@@ -78,7 +82,7 @@ export const filterObject = <T>(
|
|
|
78
82
|
|
|
79
83
|
export function get<T = any>(
|
|
80
84
|
collection: T,
|
|
81
|
-
[head, ...rest]: Array<
|
|
85
|
+
[head, ...rest]: Array<PropertyKey>,
|
|
82
86
|
): any {
|
|
83
87
|
const headItem = isDefined(head) ? (collection as any)?.[head] : undefined
|
|
84
88
|
if (rest.length === 0) {
|
|
@@ -89,7 +93,7 @@ export function get<T = any>(
|
|
|
89
93
|
|
|
90
94
|
export const set = <T = unknown>(
|
|
91
95
|
collection: T,
|
|
92
|
-
key: Array<
|
|
96
|
+
key: Array<PropertyKey>,
|
|
93
97
|
value: any,
|
|
94
98
|
): T => {
|
|
95
99
|
const [head, ...rest] = key
|