@dereekb/util 1.2.0 → 3.0.0
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.
- package/CHANGELOG.md +54 -9
- package/README.md +1 -1
- package/package.json +8 -5
- package/src/index.js +2 -2
- package/src/index.js.map +1 -1
- package/src/lib/array/array.boolean.d.ts +4 -2
- package/src/lib/array/array.boolean.js +11 -1
- package/src/lib/array/array.boolean.js.map +1 -1
- package/src/lib/array/array.d.ts +24 -2
- package/src/lib/array/array.index.d.ts +1 -1
- package/src/lib/array/array.js +37 -2
- package/src/lib/array/array.js.map +1 -1
- package/src/lib/array/array.limit.d.ts +1 -1
- package/src/lib/array/array.make.d.ts +1 -1
- package/src/lib/array/array.make.js +2 -2
- package/src/lib/array/array.make.js.map +1 -1
- package/src/lib/array/array.map.d.ts +1 -1
- package/src/lib/array/array.set.d.ts +2 -16
- package/src/lib/array/array.set.js +21 -55
- package/src/lib/array/array.set.js.map +1 -1
- package/src/lib/array/array.string.d.ts +7 -5
- package/src/lib/array/array.string.js +14 -4
- package/src/lib/array/array.string.js.map +1 -1
- package/src/lib/array/array.unique.d.ts +1 -1
- package/src/lib/array/array.value.d.ts +15 -1
- package/src/lib/array/array.value.js +21 -1
- package/src/lib/array/array.value.js.map +1 -1
- package/src/lib/array/index.js +12 -12
- package/src/lib/array/index.js.map +1 -1
- package/src/lib/assertion/index.js +5 -5
- package/src/lib/assertion/index.js.map +1 -1
- package/src/lib/auth/auth.role.claims.d.ts +98 -0
- package/src/lib/auth/auth.role.claims.js +93 -0
- package/src/lib/auth/auth.role.claims.js.map +1 -0
- package/src/lib/auth/auth.role.d.ts +22 -0
- package/src/lib/auth/auth.role.js +17 -0
- package/src/lib/auth/auth.role.js.map +1 -0
- package/src/lib/auth/index.d.ts +2 -0
- package/src/lib/auth/index.js +6 -0
- package/src/lib/auth/index.js.map +1 -0
- package/src/lib/contact/index.js +3 -3
- package/src/lib/contact/index.js.map +1 -1
- package/src/lib/date/date.d.ts +1 -1
- package/src/lib/date/date.time.d.ts +4 -2
- package/src/lib/date/date.time.js +13 -1
- package/src/lib/date/date.time.js.map +1 -1
- package/src/lib/date/index.js +2 -2
- package/src/lib/date/index.js.map +1 -1
- package/src/lib/error/error.d.ts +6 -1
- package/src/lib/error/error.js +8 -1
- package/src/lib/error/error.js.map +1 -1
- package/src/lib/error/error.server.d.ts +5 -12
- package/src/lib/error/error.server.js.map +1 -1
- package/src/lib/error/index.js +2 -2
- package/src/lib/error/index.js.map +1 -1
- package/src/lib/filter/index.js +1 -1
- package/src/lib/filter/index.js.map +1 -1
- package/src/lib/function/function.forward.d.ts +9 -0
- package/src/lib/function/function.forward.js +18 -0
- package/src/lib/function/function.forward.js.map +1 -0
- package/src/lib/function/index.d.ts +1 -0
- package/src/lib/function/index.js +5 -0
- package/src/lib/function/index.js.map +1 -0
- package/src/lib/getter/getter.cache.d.ts +38 -0
- package/src/lib/getter/getter.cache.js +23 -0
- package/src/lib/getter/getter.cache.js.map +1 -0
- package/src/lib/getter/getter.d.ts +61 -0
- package/src/lib/getter/getter.js +48 -0
- package/src/lib/getter/getter.js.map +1 -0
- package/src/lib/getter/getter.map.d.ts +15 -0
- package/src/lib/getter/getter.map.js +24 -0
- package/src/lib/getter/getter.map.js.map +1 -0
- package/src/lib/getter/index.d.ts +3 -0
- package/src/lib/getter/index.js +7 -0
- package/src/lib/getter/index.js.map +1 -0
- package/src/lib/grouping.d.ts +4 -4
- package/src/lib/index.d.ts +9 -5
- package/src/lib/index.js +31 -28
- package/src/lib/index.js.map +1 -1
- package/src/lib/iterable/index.d.ts +2 -0
- package/src/lib/iterable/index.js +6 -0
- package/src/lib/iterable/index.js.map +1 -0
- package/src/lib/iterable/iterable.d.ts +53 -0
- package/src/lib/iterable/iterable.js +113 -0
- package/src/lib/iterable/iterable.js.map +1 -0
- package/src/lib/iterable/iterable.map.d.ts +8 -0
- package/src/lib/iterable/iterable.map.js +18 -0
- package/src/lib/iterable/iterable.map.js.map +1 -0
- package/src/lib/iterate.js +1 -1
- package/src/lib/key.d.ts +1 -1
- package/src/lib/map/index.d.ts +2 -0
- package/src/lib/map/index.js +6 -0
- package/src/lib/map/index.js.map +1 -0
- package/src/lib/map/map.d.ts +9 -0
- package/src/lib/map/map.intersection.d.ts +15 -0
- package/src/lib/map/map.intersection.js +24 -0
- package/src/lib/map/map.intersection.js.map +1 -0
- package/src/lib/map/map.js +17 -0
- package/src/lib/map/map.js.map +1 -0
- package/src/lib/misc/host.d.ts +5 -0
- package/src/lib/misc/host.js +13 -0
- package/src/lib/misc/host.js.map +1 -0
- package/src/lib/misc/index.d.ts +1 -0
- package/src/lib/misc/index.js +5 -0
- package/src/lib/misc/index.js.map +1 -0
- package/src/lib/model/index.d.ts +3 -0
- package/src/lib/model/index.js +7 -0
- package/src/lib/model/index.js.map +1 -0
- package/src/lib/model/model.conversion.d.ts +63 -0
- package/src/lib/model/model.conversion.js +66 -0
- package/src/lib/model/model.conversion.js.map +1 -0
- package/src/lib/model/model.copy.d.ts +16 -0
- package/src/lib/model/model.copy.js +20 -0
- package/src/lib/model/model.copy.js.map +1 -0
- package/src/lib/{model.d.ts → model/model.d.ts} +2 -2
- package/src/lib/{model.js → model/model.js} +3 -3
- package/src/lib/model/model.js.map +1 -0
- package/src/lib/number/factory.d.ts +22 -0
- package/src/lib/number/factory.js +22 -0
- package/src/lib/number/factory.js.map +1 -0
- package/src/lib/number/index.d.ts +3 -0
- package/src/lib/number/index.js +7 -0
- package/src/lib/number/index.js.map +1 -0
- package/src/lib/number/random.d.ts +13 -0
- package/src/lib/number/random.js +22 -0
- package/src/lib/number/random.js.map +1 -0
- package/src/lib/{number.d.ts → number/round.d.ts} +0 -13
- package/src/lib/{number.js → number/round.js} +2 -20
- package/src/lib/number/round.js.map +1 -0
- package/src/lib/object/index.d.ts +1 -0
- package/src/lib/object/index.js +4 -3
- package/src/lib/object/index.js.map +1 -1
- package/src/lib/object/object.d.ts +69 -8
- package/src/lib/object/object.equal.d.ts +1 -1
- package/src/lib/object/object.equal.js +3 -3
- package/src/lib/object/object.equal.js.map +1 -1
- package/src/lib/object/object.js +117 -11
- package/src/lib/object/object.js.map +1 -1
- package/src/lib/object/object.map.d.ts +35 -0
- package/src/lib/object/object.map.js +40 -0
- package/src/lib/object/object.map.js.map +1 -0
- package/src/lib/page/index.js +3 -3
- package/src/lib/page/index.js.map +1 -1
- package/src/lib/page/page.d.ts +1 -1
- package/src/lib/page/page.filter.js +1 -1
- package/src/lib/promise/index.d.ts +3 -0
- package/src/lib/promise/index.js +7 -4
- package/src/lib/promise/index.js.map +1 -1
- package/src/lib/promise/is.d.ts +7 -0
- package/src/lib/promise/is.js +15 -0
- package/src/lib/promise/is.js.map +1 -0
- package/src/lib/promise/map.d.ts +10 -0
- package/src/lib/promise/map.js +14 -0
- package/src/lib/promise/map.js.map +1 -0
- package/src/lib/promise/promise.d.ts +13 -1
- package/src/lib/promise/promise.js +26 -8
- package/src/lib/promise/promise.js.map +1 -1
- package/src/lib/promise/promise.loop.d.ts +18 -3
- package/src/lib/promise/promise.loop.js +18 -2
- package/src/lib/promise/promise.loop.js.map +1 -1
- package/src/lib/promise/promise.ref.d.ts +10 -0
- package/src/lib/promise/promise.ref.js +19 -0
- package/src/lib/promise/promise.ref.js.map +1 -0
- package/src/lib/promise/wait.js +2 -2
- package/src/lib/promise/wait.js.map +1 -1
- package/src/lib/relation/index.js +1 -1
- package/src/lib/relation/index.js.map +1 -1
- package/src/lib/relation/relation.js +2 -2
- package/src/lib/set/index.d.ts +4 -0
- package/src/lib/set/index.js +8 -0
- package/src/lib/set/index.js.map +1 -0
- package/src/lib/set/set.allowed.d.ts +23 -0
- package/src/lib/set/set.allowed.js +29 -0
- package/src/lib/set/set.allowed.js.map +1 -0
- package/src/lib/set/set.d.ts +53 -0
- package/src/lib/{set.hashset.d.ts → set/set.hashset.d.ts} +2 -2
- package/src/lib/{set.hashset.js → set/set.hashset.js} +0 -0
- package/src/lib/set/set.hashset.js.map +1 -0
- package/src/lib/set/set.js +114 -0
- package/src/lib/set/set.js.map +1 -0
- package/src/lib/set/set.maybe.d.ts +11 -0
- package/src/lib/set/set.maybe.js +22 -0
- package/src/lib/set/set.maybe.js.map +1 -0
- package/src/lib/sort.d.ts +1 -4
- package/src/lib/sort.js +3 -8
- package/src/lib/sort.js.map +1 -1
- package/src/lib/storage/index.js +4 -4
- package/src/lib/storage/index.js.map +1 -1
- package/src/lib/storage/storage.memory.d.ts +1 -1
- package/src/lib/storage/storage.object.d.ts +1 -1
- package/src/lib/string.d.ts +9 -2
- package/src/lib/string.js +11 -1
- package/src/lib/string.js.map +1 -1
- package/src/lib/tree/index.js +4 -4
- package/src/lib/tree/index.js.map +1 -1
- package/src/lib/tree/tree.expand.d.ts +1 -1
- package/src/lib/type.d.ts +17 -1
- package/src/lib/value/equal.d.ts +41 -0
- package/src/lib/value/equal.js +56 -0
- package/src/lib/value/equal.js.map +1 -0
- package/src/lib/value/index.d.ts +4 -0
- package/src/lib/value/index.js +8 -0
- package/src/lib/value/index.js.map +1 -0
- package/src/lib/value/map.d.ts +13 -0
- package/src/lib/{map.js → value/map.js} +0 -0
- package/src/lib/value/map.js.map +1 -0
- package/src/lib/{value.d.ts → value/maybe.d.ts} +45 -2
- package/src/lib/value/maybe.js +78 -0
- package/src/lib/value/maybe.js.map +1 -0
- package/src/lib/value/modifier.d.ts +58 -0
- package/src/lib/value/modifier.js +69 -0
- package/src/lib/value/modifier.js.map +1 -0
- package/src/test/index.d.ts +1 -0
- package/src/test/index.js +3 -2
- package/src/test/index.js.map +1 -1
- package/src/test/jest.d.ts +21 -1
- package/src/test/jest.function.d.ts +9 -0
- package/src/test/jest.function.js +14 -0
- package/src/test/jest.function.js.map +1 -0
- package/src/test/jest.js +64 -36
- package/src/test/jest.js.map +1 -1
- package/src/test/jest.wrap.js +5 -5
- package/src/test/jest.wrap.js.map +1 -1
- package/src/lib/getter.d.ts +0 -26
- package/src/lib/getter.js +0 -13
- package/src/lib/getter.js.map +0 -1
- package/src/lib/map.d.ts +0 -2
- package/src/lib/map.js.map +0 -1
- package/src/lib/model.js.map +0 -1
- package/src/lib/number.js.map +0 -1
- package/src/lib/set.d.ts +0 -0
- package/src/lib/set.hashset.js.map +0 -1
- package/src/lib/set.js +0 -2
- package/src/lib/set.js.map +0 -1
- package/src/lib/value.js +0 -28
- package/src/lib/value.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FieldOfType } from "../key";
|
|
2
|
-
import { Maybe } from "../value";
|
|
2
|
+
import { Maybe } from "../value/maybe";
|
|
3
|
+
export declare function objectHasNoKeys(obj: object): obj is {};
|
|
3
4
|
export declare function objectHasKey<T, K extends keyof T = keyof T>(obj: T, key: K): boolean;
|
|
4
5
|
export declare function objectHasKey<T>(obj: T, key: string): boolean;
|
|
5
6
|
export declare function applyToMultipleFields<T extends object>(value: any, fields: FieldOfType<T>[]): Partial<T>;
|
|
@@ -8,8 +9,46 @@ export declare function mapToObject<T, K extends PropertyKey>(map: Map<K, T>): {
|
|
|
8
9
|
};
|
|
9
10
|
export interface FilterFromPOJO<T extends object> {
|
|
10
11
|
copy?: boolean;
|
|
11
|
-
filter?: Omit<
|
|
12
|
+
filter?: Omit<KeyValueTupleFilter<T>, 'inverse'>;
|
|
12
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns a copy of the input object with all null and undefined values filtered from it.
|
|
16
|
+
*
|
|
17
|
+
* @param obj
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export declare function filterNullAndUndefinedValues<T extends object = object>(obj: T): T;
|
|
21
|
+
/**
|
|
22
|
+
* Returns a copy of the input object with all undefined values filtered from it.
|
|
23
|
+
*
|
|
24
|
+
* @param obj
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export declare function filterUndefinedValues<T extends object = object>(obj: T, filterNull?: boolean): T;
|
|
28
|
+
/**
|
|
29
|
+
* Returns all keys that are not associated with an undefined value.
|
|
30
|
+
*
|
|
31
|
+
* @param obj
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
export declare function allNonUndefinedKeys<T extends object = Object>(obj: T): (keyof T)[];
|
|
35
|
+
export declare function allMaybeSoKeys<T extends object = Object>(obj: T): (keyof T)[];
|
|
36
|
+
/**
|
|
37
|
+
* Finds keys from the POJO that meet the filter.
|
|
38
|
+
*
|
|
39
|
+
* @param obj
|
|
40
|
+
* @param filter
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
export declare function findPOJOKeys<T extends object = object>(obj: T, filter: FilterKeyValueTuplesInput<T>): (keyof T)[];
|
|
44
|
+
/**
|
|
45
|
+
* Finds and counts the number of keys from the POJO that meet the filter.
|
|
46
|
+
*
|
|
47
|
+
* @param obj
|
|
48
|
+
* @param filter
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
export declare function countPOJOKeys<T extends object = object>(obj: T, filter?: FilterKeyValueTuplesInput<T>): number;
|
|
13
52
|
/**
|
|
14
53
|
* Removes values, per the the filter config, from the input object.
|
|
15
54
|
*
|
|
@@ -18,11 +57,32 @@ export interface FilterFromPOJO<T extends object> {
|
|
|
18
57
|
*/
|
|
19
58
|
export declare function filterFromPOJO<T extends object = object>(obj: T, { copy, filter }?: FilterFromPOJO<T>): T;
|
|
20
59
|
export declare function assignValuesToPOJO<T extends object = object>(target: T, obj: T, filter?: FilterKeyValueTuplesInput<T>): T;
|
|
60
|
+
/**
|
|
61
|
+
* Reads all values from the pojo based on the filter and puts them into an array.
|
|
62
|
+
*
|
|
63
|
+
* @param target
|
|
64
|
+
* @param filter
|
|
65
|
+
* @returns
|
|
66
|
+
*/
|
|
67
|
+
export declare function valuesFromPOJO<O = any, I extends object = object>(target: I, filter?: FilterKeyValueTuplesInput<I>): O[];
|
|
21
68
|
export declare type KeyValueTuple<T extends object = object, K extends keyof T = keyof T> = [K, T[K]];
|
|
69
|
+
export declare function allKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T): KeyValueTuple<T, K>[];
|
|
22
70
|
export declare enum KeyValueTypleValueFilter {
|
|
71
|
+
/**
|
|
72
|
+
* No filter
|
|
73
|
+
*/
|
|
23
74
|
NONE = 0,
|
|
75
|
+
/**
|
|
76
|
+
* Only undefined values.
|
|
77
|
+
*/
|
|
24
78
|
UNDEFINED = 1,
|
|
79
|
+
/**
|
|
80
|
+
* All values that are null or undefined.
|
|
81
|
+
*/
|
|
25
82
|
NULL = 2,
|
|
83
|
+
/**
|
|
84
|
+
* All values that are falsy.
|
|
85
|
+
*/
|
|
26
86
|
FALSY = 3
|
|
27
87
|
}
|
|
28
88
|
export declare type ForEachKeyValueFunction<T extends object = object, K extends keyof T = keyof T> = (tuple: KeyValueTuple<T, K>, index: number) => void;
|
|
@@ -31,14 +91,15 @@ export interface ForEachKeyValue<T extends object = object, K extends keyof T =
|
|
|
31
91
|
forEach: ForEachKeyValueFunction<T, K>;
|
|
32
92
|
}
|
|
33
93
|
export declare function forEachKeyValue<T extends object = object, K extends keyof T = keyof T>(obj: T, { forEach, filter }: ForEachKeyValue<T, K>): void;
|
|
34
|
-
export declare function
|
|
35
|
-
export
|
|
36
|
-
export interface FilterKeyValueTuples<T extends object = object, K extends keyof T = keyof T> {
|
|
94
|
+
export declare function filterKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T, filter?: FilterKeyValueTuplesInput<T, K>): KeyValueTuple<T, K>[];
|
|
95
|
+
export interface KeyValueTupleFilter<T extends object = object, K extends keyof T = keyof T> {
|
|
37
96
|
valueFilter?: KeyValueTypleValueFilter;
|
|
38
97
|
invertFilter?: boolean;
|
|
39
98
|
keysFilter?: K[];
|
|
40
99
|
}
|
|
41
|
-
export declare
|
|
100
|
+
export declare type FilterKeyValueTuplesInput<T extends object = object, K extends keyof T = keyof T> = KeyValueTypleValueFilter | KeyValueTupleFilter<T, K>;
|
|
101
|
+
export declare type FilterKeyValueTupleFunction<T extends object = object, K extends keyof T = keyof T> = (tuples: KeyValueTuple<T, K>) => boolean;
|
|
102
|
+
export declare function filterKeyValueTupleFunction<T extends object = object, K extends keyof T = keyof T>(input: FilterKeyValueTuplesInput<T, K>): FilterKeyValueTupleFunction<T, K>;
|
|
42
103
|
/**
|
|
43
104
|
* Recursively function that returns true if the input is not an object or if every key on the object is empty.
|
|
44
105
|
*
|
|
@@ -50,7 +111,7 @@ export declare function objectIsEmpty<T extends object>(obj: Maybe<T>): boolean;
|
|
|
50
111
|
*
|
|
51
112
|
* @param objects
|
|
52
113
|
*/
|
|
53
|
-
export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>>[], filter?:
|
|
114
|
+
export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>>[], filter?: KeyValueTupleFilter<T>): Partial<T>;
|
|
54
115
|
/**
|
|
55
116
|
* Assigns all undefined valeus from one or more objects into the target object.
|
|
56
117
|
*
|
|
@@ -58,5 +119,5 @@ export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>
|
|
|
58
119
|
*/
|
|
59
120
|
export declare function overrideInObject<T extends object>(target: Partial<T>, { from, filter }: {
|
|
60
121
|
from: Partial<T>[];
|
|
61
|
-
filter?:
|
|
122
|
+
filter?: KeyValueTupleFilter<T>;
|
|
62
123
|
}): Partial<T>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.areEqualPOJOValues = void 0;
|
|
4
4
|
const lodash_1 = require("lodash");
|
|
5
5
|
/**
|
|
6
6
|
* Performs a deep comparison to check if all values on the input filters are equal.
|
|
7
7
|
*/
|
|
8
|
-
function
|
|
8
|
+
function areEqualPOJOValues(a, b) {
|
|
9
9
|
return (0, lodash_1.isEqual)(a, b);
|
|
10
10
|
}
|
|
11
|
-
exports.
|
|
11
|
+
exports.areEqualPOJOValues = areEqualPOJOValues;
|
|
12
12
|
//# sourceMappingURL=object.equal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.equal.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.equal.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAEjC;;GAEG;AACH,SAAgB,
|
|
1
|
+
{"version":3,"file":"object.equal.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.equal.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAEjC;;GAEG;AACH,SAAgB,kBAAkB,CAAI,CAAI,EAAE,CAAI;IAC9C,OAAO,IAAA,gBAAO,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC;AAFD,gDAEC"}
|
package/src/lib/object/object.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.overrideInObject = exports.mergeObjects = exports.objectIsEmpty = exports.
|
|
4
|
-
const
|
|
3
|
+
exports.overrideInObject = exports.mergeObjects = exports.objectIsEmpty = exports.filterKeyValueTupleFunction = exports.filterKeyValueTuples = exports.forEachKeyValue = exports.KeyValueTypleValueFilter = exports.allKeyValueTuples = exports.valuesFromPOJO = exports.assignValuesToPOJO = exports.filterFromPOJO = exports.countPOJOKeys = exports.findPOJOKeys = exports.allMaybeSoKeys = exports.allNonUndefinedKeys = exports.filterUndefinedValues = exports.filterNullAndUndefinedValues = exports.mapToObject = exports.applyToMultipleFields = exports.objectHasKey = exports.objectHasNoKeys = void 0;
|
|
4
|
+
const maybe_1 = require("../value/maybe");
|
|
5
5
|
const array_value_1 = require("../array/array.value");
|
|
6
6
|
const filter_1 = require("../filter/filter");
|
|
7
|
+
function objectHasNoKeys(obj) {
|
|
8
|
+
return (Object.keys(obj).length === 0);
|
|
9
|
+
}
|
|
10
|
+
exports.objectHasNoKeys = objectHasNoKeys;
|
|
7
11
|
function objectHasKey(obj, key) {
|
|
8
12
|
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
9
13
|
}
|
|
@@ -24,6 +28,74 @@ function mapToObject(map) {
|
|
|
24
28
|
return object;
|
|
25
29
|
}
|
|
26
30
|
exports.mapToObject = mapToObject;
|
|
31
|
+
/**
|
|
32
|
+
* Returns a copy of the input object with all null and undefined values filtered from it.
|
|
33
|
+
*
|
|
34
|
+
* @param obj
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
function filterNullAndUndefinedValues(obj) {
|
|
38
|
+
return filterUndefinedValues(obj, true);
|
|
39
|
+
}
|
|
40
|
+
exports.filterNullAndUndefinedValues = filterNullAndUndefinedValues;
|
|
41
|
+
/**
|
|
42
|
+
* Returns a copy of the input object with all undefined values filtered from it.
|
|
43
|
+
*
|
|
44
|
+
* @param obj
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
function filterUndefinedValues(obj, filterNull = false) {
|
|
48
|
+
return filterFromPOJO(obj, { copy: true, filter: { valueFilter: (filterNull) ? KeyValueTypleValueFilter.NULL : KeyValueTypleValueFilter.UNDEFINED } });
|
|
49
|
+
}
|
|
50
|
+
exports.filterUndefinedValues = filterUndefinedValues;
|
|
51
|
+
/**
|
|
52
|
+
* Returns all keys that are not associated with an undefined value.
|
|
53
|
+
*
|
|
54
|
+
* @param obj
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
function allNonUndefinedKeys(obj) {
|
|
58
|
+
return findPOJOKeys(obj, { valueFilter: KeyValueTypleValueFilter.UNDEFINED });
|
|
59
|
+
}
|
|
60
|
+
exports.allNonUndefinedKeys = allNonUndefinedKeys;
|
|
61
|
+
function allMaybeSoKeys(obj) {
|
|
62
|
+
return findPOJOKeys(obj, { valueFilter: KeyValueTypleValueFilter.NULL });
|
|
63
|
+
}
|
|
64
|
+
exports.allMaybeSoKeys = allMaybeSoKeys;
|
|
65
|
+
/**
|
|
66
|
+
* Finds keys from the POJO that meet the filter.
|
|
67
|
+
*
|
|
68
|
+
* @param obj
|
|
69
|
+
* @param filter
|
|
70
|
+
* @returns
|
|
71
|
+
*/
|
|
72
|
+
function findPOJOKeys(obj, filter) {
|
|
73
|
+
const keys = [];
|
|
74
|
+
forEachKeyValue(obj, {
|
|
75
|
+
filter,
|
|
76
|
+
forEach: ([key]) => {
|
|
77
|
+
keys.push(key);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return keys;
|
|
81
|
+
}
|
|
82
|
+
exports.findPOJOKeys = findPOJOKeys;
|
|
83
|
+
/**
|
|
84
|
+
* Finds and counts the number of keys from the POJO that meet the filter.
|
|
85
|
+
*
|
|
86
|
+
* @param obj
|
|
87
|
+
* @param filter
|
|
88
|
+
* @returns
|
|
89
|
+
*/
|
|
90
|
+
function countPOJOKeys(obj, filter = KeyValueTypleValueFilter.UNDEFINED) {
|
|
91
|
+
let count = 0;
|
|
92
|
+
forEachKeyValue(obj, {
|
|
93
|
+
filter,
|
|
94
|
+
forEach: () => count += 1
|
|
95
|
+
});
|
|
96
|
+
return count;
|
|
97
|
+
}
|
|
98
|
+
exports.countPOJOKeys = countPOJOKeys;
|
|
27
99
|
/**
|
|
28
100
|
* Removes values, per the the filter config, from the input object.
|
|
29
101
|
*
|
|
@@ -53,30 +125,64 @@ function assignValuesToPOJO(target, obj, filter = KeyValueTypleValueFilter.UNDEF
|
|
|
53
125
|
return obj;
|
|
54
126
|
}
|
|
55
127
|
exports.assignValuesToPOJO = assignValuesToPOJO;
|
|
128
|
+
/**
|
|
129
|
+
* Reads all values from the pojo based on the filter and puts them into an array.
|
|
130
|
+
*
|
|
131
|
+
* @param target
|
|
132
|
+
* @param filter
|
|
133
|
+
* @returns
|
|
134
|
+
*/
|
|
135
|
+
function valuesFromPOJO(target, filter = KeyValueTypleValueFilter.UNDEFINED) {
|
|
136
|
+
const values = [];
|
|
137
|
+
forEachKeyValue(target, {
|
|
138
|
+
filter,
|
|
139
|
+
forEach: ([key, value]) => {
|
|
140
|
+
values.push(value);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
return values;
|
|
144
|
+
}
|
|
145
|
+
exports.valuesFromPOJO = valuesFromPOJO;
|
|
146
|
+
function allKeyValueTuples(obj) {
|
|
147
|
+
return Object.entries(obj);
|
|
148
|
+
}
|
|
149
|
+
exports.allKeyValueTuples = allKeyValueTuples;
|
|
56
150
|
var KeyValueTypleValueFilter;
|
|
57
151
|
(function (KeyValueTypleValueFilter) {
|
|
152
|
+
/**
|
|
153
|
+
* No filter
|
|
154
|
+
*/
|
|
58
155
|
KeyValueTypleValueFilter[KeyValueTypleValueFilter["NONE"] = 0] = "NONE";
|
|
156
|
+
/**
|
|
157
|
+
* Only undefined values.
|
|
158
|
+
*/
|
|
59
159
|
KeyValueTypleValueFilter[KeyValueTypleValueFilter["UNDEFINED"] = 1] = "UNDEFINED";
|
|
160
|
+
/**
|
|
161
|
+
* All values that are null or undefined.
|
|
162
|
+
*/
|
|
60
163
|
KeyValueTypleValueFilter[KeyValueTypleValueFilter["NULL"] = 2] = "NULL";
|
|
164
|
+
/**
|
|
165
|
+
* All values that are falsy.
|
|
166
|
+
*/
|
|
61
167
|
KeyValueTypleValueFilter[KeyValueTypleValueFilter["FALSY"] = 3] = "FALSY";
|
|
62
168
|
})(KeyValueTypleValueFilter = exports.KeyValueTypleValueFilter || (exports.KeyValueTypleValueFilter = {}));
|
|
63
169
|
function forEachKeyValue(obj, { forEach, filter }) {
|
|
64
|
-
const keyValues =
|
|
170
|
+
const keyValues = filterKeyValueTuples(obj, filter);
|
|
65
171
|
keyValues.forEach(forEach);
|
|
66
172
|
}
|
|
67
173
|
exports.forEachKeyValue = forEachKeyValue;
|
|
68
|
-
function
|
|
69
|
-
let pairs =
|
|
174
|
+
function filterKeyValueTuples(obj, filter) {
|
|
175
|
+
let pairs = allKeyValueTuples(obj);
|
|
70
176
|
if (filter) {
|
|
71
|
-
const filterFn =
|
|
177
|
+
const filterFn = filterKeyValueTupleFunction(filter);
|
|
72
178
|
pairs = pairs.filter(filterFn);
|
|
73
179
|
}
|
|
74
180
|
return pairs;
|
|
75
181
|
}
|
|
76
|
-
exports.
|
|
77
|
-
function
|
|
182
|
+
exports.filterKeyValueTuples = filterKeyValueTuples;
|
|
183
|
+
function filterKeyValueTupleFunction(input) {
|
|
78
184
|
const filter = (typeof input === 'object') ? input : { valueFilter: input };
|
|
79
|
-
const { valueFilter: type, invertFilter: inverseFilter, keysFilter } = filter;
|
|
185
|
+
const { valueFilter: type, invertFilter: inverseFilter = false, keysFilter } = filter;
|
|
80
186
|
let filterFn;
|
|
81
187
|
switch (type) {
|
|
82
188
|
case KeyValueTypleValueFilter.UNDEFINED:
|
|
@@ -100,7 +206,7 @@ function filterKeyValueTuplesFn(input) {
|
|
|
100
206
|
}
|
|
101
207
|
return (0, filter_1.invertFilter)(filterFn, inverseFilter);
|
|
102
208
|
}
|
|
103
|
-
exports.
|
|
209
|
+
exports.filterKeyValueTupleFunction = filterKeyValueTupleFunction;
|
|
104
210
|
/**
|
|
105
211
|
* Recursively function that returns true if the input is not an object or if every key on the object is empty.
|
|
106
212
|
*
|
|
@@ -113,7 +219,7 @@ function objectIsEmpty(obj) {
|
|
|
113
219
|
for (let i = 0; i < keys.length; i += 1) {
|
|
114
220
|
const key = keys[i];
|
|
115
221
|
const value = obj[key];
|
|
116
|
-
const isEmpty = (typeof obj === 'object') ? objectIsEmpty(value) : !(0,
|
|
222
|
+
const isEmpty = (typeof obj === 'object') ? objectIsEmpty(value) : !(0, maybe_1.hasValueOrNotEmpty)(value);
|
|
117
223
|
if (!isEmpty) {
|
|
118
224
|
return false;
|
|
119
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An object with values of a specific type keyed by either string or number or symbols.
|
|
3
|
+
*/
|
|
4
|
+
export declare type ObjectMap<T> = {
|
|
5
|
+
[key: string | number | symbol]: T;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* An object with values of a specific type keyed to string values.
|
|
9
|
+
*/
|
|
10
|
+
export declare type StringObjectMap<T> = {
|
|
11
|
+
[key: string]: T;
|
|
12
|
+
};
|
|
13
|
+
export declare type MappedObjectMap<M extends ObjectMap<any>, O> = {
|
|
14
|
+
[key in keyof M]: O;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Converts an ObjectMap into a Map.
|
|
18
|
+
*
|
|
19
|
+
* @param object
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare function objectToMap<T>(object: ObjectMap<T>): Map<string, T>;
|
|
23
|
+
/**
|
|
24
|
+
* Converts an ObjectMap into tuples.
|
|
25
|
+
*
|
|
26
|
+
* @param object
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
export declare function objectToTuples<T>(object: ObjectMap<T>): [string, T][];
|
|
30
|
+
/**
|
|
31
|
+
* Maps the values of an ObjectMap from one type to another and returns an ObjectMap containing that type.
|
|
32
|
+
*
|
|
33
|
+
* @param object
|
|
34
|
+
*/
|
|
35
|
+
export declare function mapObjectMap<M extends ObjectMap<I>, I = any, O = any>(object: M, mapFn: <K extends keyof M>(value: M[K], key: K) => O): MappedObjectMap<M, O>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapObjectMap = exports.objectToTuples = exports.objectToMap = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Converts an ObjectMap into a Map.
|
|
6
|
+
*
|
|
7
|
+
* @param object
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
function objectToMap(object) {
|
|
11
|
+
return new Map(objectToTuples(object));
|
|
12
|
+
}
|
|
13
|
+
exports.objectToMap = objectToMap;
|
|
14
|
+
/**
|
|
15
|
+
* Converts an ObjectMap into tuples.
|
|
16
|
+
*
|
|
17
|
+
* @param object
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
function objectToTuples(object) {
|
|
21
|
+
const keys = Object.keys(object);
|
|
22
|
+
return keys.map(x => ([x, object[x]]));
|
|
23
|
+
}
|
|
24
|
+
exports.objectToTuples = objectToTuples;
|
|
25
|
+
/**
|
|
26
|
+
* Maps the values of an ObjectMap from one type to another and returns an ObjectMap containing that type.
|
|
27
|
+
*
|
|
28
|
+
* @param object
|
|
29
|
+
*/
|
|
30
|
+
function mapObjectMap(object, mapFn) {
|
|
31
|
+
const mappedObject = {};
|
|
32
|
+
const keys = Object.keys(object);
|
|
33
|
+
keys.forEach((key) => {
|
|
34
|
+
const value = object[key];
|
|
35
|
+
mappedObject[key] = mapFn(value, key);
|
|
36
|
+
});
|
|
37
|
+
return mappedObject;
|
|
38
|
+
}
|
|
39
|
+
exports.mapObjectMap = mapObjectMap;
|
|
40
|
+
//# sourceMappingURL=object.map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.map.ts"],"names":[],"mappings":";;;AAkBA;;;;;GAKG;AACH,SAAgB,WAAW,CAAI,MAAoB;IACjD,OAAO,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,kCAEC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAoB;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAHD,wCAGC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAA2C,MAAS,EAAE,KAAoD;IACpI,MAAM,YAAY,GAA0B,EAA2B,CAAC;IAExE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,CAAoB,GAAM,EAAE,EAAE;QACzC,MAAM,KAAK,GAAS,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC;AAVD,oCAUC"}
|
package/src/lib/page/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./page"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./page.calculator"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./page.filter"), exports);
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/page/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/page/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,4DAAkC;AAClC,wDAA8B"}
|
package/src/lib/page/page.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ exports.filteredPage = filteredPage;
|
|
|
27
27
|
*/
|
|
28
28
|
function iterateFilteredPages(inputPage, loadFn, iterFn) {
|
|
29
29
|
var _a, _b;
|
|
30
|
-
return
|
|
30
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
31
|
let currentPage = (_a = inputPage === null || inputPage === void 0 ? void 0 : inputPage.page) !== null && _a !== void 0 ? _a : 0;
|
|
32
32
|
let hasMore = true;
|
|
33
33
|
let count = 0;
|
package/src/lib/promise/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./is"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./poll"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./map"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./promise"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./promise.loop"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./promise.ref"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./wait"), exports);
|
|
8
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/index.ts"],"names":[],"mappings":";;;AAAA,+CAAqB;AACrB,iDAAuB;AACvB,gDAAsB;AACtB,oDAA0B;AAC1B,yDAA+B;AAC/B,wDAA8B;AAC9B,iDAAuB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPromise = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Whether or not the input is function-like.
|
|
6
|
+
*
|
|
7
|
+
* @param obj
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
function isPromise(obj) {
|
|
11
|
+
// https://github.com/then/is-promise
|
|
12
|
+
return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof (obj.then) === 'function';
|
|
13
|
+
}
|
|
14
|
+
exports.isPromise = isPromise;
|
|
15
|
+
//# sourceMappingURL=is.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/is.ts"],"names":[],"mappings":";;;AACA;;;;;GAKG;AACH,SAAgB,SAAS,CAAO,GAAuB;IACrD,qCAAqC;IACrC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,IAAI,OAAO,CAAE,GAAW,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;AACtH,CAAC;AAHD,8BAGC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PromiseOrValue } from "./promise";
|
|
2
|
+
/**
|
|
3
|
+
* Performs a mapping function on the input PromiseOrValue value.
|
|
4
|
+
*
|
|
5
|
+
* @param input
|
|
6
|
+
* @param mapFn
|
|
7
|
+
*/
|
|
8
|
+
export declare function mapPromiseOrValue<I, O>(input: Promise<I>, mapFn: (input: I) => O): Promise<O>;
|
|
9
|
+
export declare function mapPromiseOrValue<I, O>(input: I, mapFn: (input: I) => O): O;
|
|
10
|
+
export declare function mapPromiseOrValue<I, O>(input: PromiseOrValue<I>, mapFn: (input: I) => O): PromiseOrValue<O>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapPromiseOrValue = void 0;
|
|
4
|
+
const is_1 = require("./is");
|
|
5
|
+
function mapPromiseOrValue(input, mapFn) {
|
|
6
|
+
if ((0, is_1.isPromise)(input)) {
|
|
7
|
+
return input.then(mapFn);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return mapFn(input);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.mapPromiseOrValue = mapPromiseOrValue;
|
|
14
|
+
//# sourceMappingURL=map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/map.ts"],"names":[],"mappings":";;;AAAA,6BAAiC;AAYjC,SAAgB,iBAAiB,CAAO,KAAwB,EAAE,KAAsB;IACtF,IAAI,IAAA,cAAS,EAAC,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;SAAM;QACL,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;KACrB;AACH,CAAC;AAND,8CAMC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { Maybe } from "../value";
|
|
1
|
+
import { Maybe } from "../value/maybe";
|
|
2
|
+
export declare type PromiseOrValue<T> = Promise<T> | T;
|
|
3
|
+
export declare function asPromise<T>(input: PromiseOrValue<T>): Promise<T>;
|
|
2
4
|
export declare type PromiseTaskFn<T, K = any> = (value: T, tryNumber?: number) => Promise<K>;
|
|
3
5
|
export interface PerformTaskResult<O> {
|
|
4
6
|
value: Maybe<O>;
|
|
@@ -25,11 +27,21 @@ export interface PerformTasksConfig<T = any> extends PerformTaskConfig<T> {
|
|
|
25
27
|
*/
|
|
26
28
|
sequential?: boolean;
|
|
27
29
|
}
|
|
30
|
+
export declare type ValuesTaskConfig<T = any> = Omit<PerformTasksConfig<T>, 'throwError'>;
|
|
28
31
|
export declare class PromiseUtility {
|
|
29
32
|
/**
|
|
30
33
|
* Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
|
|
31
34
|
*/
|
|
32
35
|
static runTaskForValue<O>(taskFn: () => Promise<O>, config?: ValueTaskConfig<0>): Promise<Maybe<O>>;
|
|
36
|
+
/**
|
|
37
|
+
* Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
|
|
38
|
+
*
|
|
39
|
+
* @param input
|
|
40
|
+
* @param taskFn
|
|
41
|
+
* @param config
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
static runTasksForValues<T, K = any>(input: T[], taskFn: PromiseTaskFn<T, K>, config?: PerformTasksConfig<T>): Promise<K[]>;
|
|
33
45
|
/**
|
|
34
46
|
* Performs the input tasks, and will retry tasks if they fail, up to a certain point.
|
|
35
47
|
*
|