@dereekb/util 9.25.15 → 10.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 +12 -0
- package/fetch/CHANGELOG.md +12 -0
- package/fetch/package.json +2 -14
- package/fetch/src/lib/fetch.d.ts +5 -5
- package/fetch/src/lib/fetch.type.d.ts +3 -3
- package/fetch/src/lib/json.d.ts +8 -8
- package/fetch/src/lib/timeout.js +3 -2
- package/fetch/src/lib/timeout.js.map +1 -1
- package/fetch/src/lib/url.d.ts +10 -10
- package/package.json +5 -8
- package/src/lib/array/array.boolean.d.ts +3 -3
- package/src/lib/array/array.d.ts +25 -6
- package/src/lib/array/array.factory.d.ts +4 -4
- package/src/lib/array/array.filter.d.ts +1 -1
- package/src/lib/array/array.find.d.ts +2 -2
- package/src/lib/array/array.index.d.ts +3 -3
- package/src/lib/array/array.indexed.d.ts +6 -6
- package/src/lib/array/array.js +31 -11
- package/src/lib/array/array.js.map +1 -1
- package/src/lib/array/array.make.d.ts +1 -1
- package/src/lib/array/array.number.d.ts +2 -2
- package/src/lib/array/array.random.d.ts +1 -1
- package/src/lib/array/array.string.d.ts +8 -5
- package/src/lib/array/array.string.js +6 -6
- package/src/lib/array/array.string.js.map +1 -1
- package/src/lib/array/array.unique.d.ts +3 -11
- package/src/lib/array/array.unique.js +1 -10
- package/src/lib/array/array.unique.js.map +1 -1
- package/src/lib/assertion/assertion.d.ts +2 -2
- package/src/lib/auth/auth.role.claims.d.ts +12 -12
- package/src/lib/auth/auth.role.d.ts +2 -2
- package/src/lib/boolean.d.ts +2 -2
- package/src/lib/contact/domain.d.ts +1 -1
- package/src/lib/contact/email.d.ts +3 -3
- package/src/lib/contact/phone.d.ts +5 -5
- package/src/lib/contact/random.d.ts +2 -2
- package/src/lib/date/date.d.ts +22 -22
- package/src/lib/date/date.time.d.ts +4 -4
- package/src/lib/date/date.time.js +1 -1
- package/src/lib/date/date.time.js.map +1 -1
- package/src/lib/date/hour.d.ts +1 -1
- package/src/lib/date/week.d.ts +10 -10
- package/src/lib/date/week.js +1 -1
- package/src/lib/date/week.js.map +1 -1
- package/src/lib/error/error.d.ts +5 -5
- package/src/lib/error/error.server.d.ts +1 -1
- package/src/lib/file/xml.d.ts +1 -1
- package/src/lib/filter/filter.d.ts +2 -2
- package/src/lib/function/function.boolean.d.ts +1 -1
- package/src/lib/function/function.forward.d.ts +2 -2
- package/src/lib/getter/getter.cache.d.ts +2 -2
- package/src/lib/getter/getter.d.ts +13 -13
- package/src/lib/getter/getter.map.d.ts +1 -1
- package/src/lib/getter/getter.util.d.ts +1 -1
- package/src/lib/getter/type.d.ts +1 -1
- package/src/lib/grouping.d.ts +4 -2
- package/src/lib/grouping.js +9 -6
- package/src/lib/grouping.js.map +1 -1
- package/src/lib/hash.d.ts +2 -2
- package/src/lib/iterable/iterable.d.ts +1 -1
- package/src/lib/iterate.d.ts +2 -2
- package/src/lib/key.d.ts +6 -6
- package/src/lib/key.js +1 -1
- package/src/lib/key.js.map +1 -1
- package/src/lib/lifecycle.d.ts +1 -1
- package/src/lib/map/map.intersection.js +1 -1
- package/src/lib/map/map.intersection.js.map +1 -1
- package/src/lib/map/map.key.d.ts +2 -2
- package/src/lib/model/id.batch.d.ts +3 -9
- package/src/lib/model/id.batch.js +2 -2
- package/src/lib/model/id.batch.js.map +1 -1
- package/src/lib/model/model.conversion.d.ts +32 -32
- package/src/lib/model/model.copy.d.ts +3 -3
- package/src/lib/model/model.d.ts +11 -11
- package/src/lib/model/model.modify.d.ts +4 -4
- package/src/lib/nodejs/stream.d.ts +1 -1
- package/src/lib/number/bitwise.dencoder.d.ts +10 -10
- package/src/lib/number/bitwise.dencoder.js +1 -1
- package/src/lib/number/bitwise.dencoder.js.map +1 -1
- package/src/lib/number/bound.d.ts +3 -3
- package/src/lib/number/dollar.d.ts +4 -4
- package/src/lib/number/factory.d.ts +1 -1
- package/src/lib/number/number.d.ts +5 -5
- package/src/lib/number/pay.d.ts +2 -2
- package/src/lib/number/random.d.ts +2 -2
- package/src/lib/number/round.d.ts +11 -11
- package/src/lib/number/sort.d.ts +1 -1
- package/src/lib/number/transform.d.ts +2 -2
- package/src/lib/object/object.array.delta.d.ts +4 -4
- package/src/lib/object/object.d.ts +2 -2
- package/src/lib/object/object.equal.d.ts +1 -1
- package/src/lib/object/object.filter.pojo.d.ts +16 -16
- package/src/lib/object/object.filter.tuple.d.ts +5 -5
- package/src/lib/object/object.filter.tuple.js +1 -1
- package/src/lib/object/object.filter.tuple.js.map +1 -1
- package/src/lib/object/object.map.d.ts +5 -5
- package/src/lib/page/page.d.ts +1 -1
- package/src/lib/path/path.d.ts +13 -13
- package/src/lib/path/path.js +1 -1
- package/src/lib/path/path.js.map +1 -1
- package/src/lib/promise/callback.d.ts +2 -2
- package/src/lib/promise/index.d.ts +1 -0
- package/src/lib/promise/index.js +1 -0
- package/src/lib/promise/index.js.map +1 -1
- package/src/lib/promise/map.d.ts +1 -1
- package/src/lib/promise/promise.d.ts +82 -37
- package/src/lib/promise/promise.js +173 -106
- package/src/lib/promise/promise.js.map +1 -1
- package/src/lib/promise/promise.loop.d.ts +2 -2
- package/src/lib/promise/promise.ref.d.ts +2 -2
- package/src/lib/promise/promise.type.d.ts +11 -0
- package/src/lib/promise/promise.type.js +14 -0
- package/src/lib/promise/promise.type.js.map +1 -0
- package/src/lib/promise/use.d.ts +1 -1
- package/src/lib/relation/relation.d.ts +8 -8
- package/src/lib/relation/relation.js +1 -1
- package/src/lib/relation/relation.js.map +1 -1
- package/src/lib/service/handler.config.d.ts +6 -6
- package/src/lib/service/handler.d.ts +7 -7
- package/src/lib/set/set.d.ts +6 -18
- package/src/lib/set/set.decision.d.ts +1 -1
- package/src/lib/set/set.delta.d.ts +2 -2
- package/src/lib/set/set.delta.js +1 -1
- package/src/lib/set/set.delta.js.map +1 -1
- package/src/lib/set/set.js +5 -18
- package/src/lib/set/set.js.map +1 -1
- package/src/lib/set/set.mode.d.ts +1 -1
- package/src/lib/set/set.selection.d.ts +1 -1
- package/src/lib/sort.d.ts +9 -9
- package/src/lib/sort.js.map +1 -1
- package/src/lib/storage/storage.d.ts +2 -2
- package/src/lib/string/char.d.ts +1 -1
- package/src/lib/string/dencoder.d.ts +7 -7
- package/src/lib/string/html.d.ts +2 -2
- package/src/lib/string/password.d.ts +1 -1
- package/src/lib/string/replace.d.ts +5 -5
- package/src/lib/string/search.d.ts +3 -3
- package/src/lib/string/sort.d.ts +1 -1
- package/src/lib/string/string.d.ts +4 -4
- package/src/lib/string/transform.d.ts +4 -4
- package/src/lib/string/url.d.ts +14 -14
- package/src/lib/string/url.js.map +1 -1
- package/src/lib/tree/tree.array.d.ts +1 -1
- package/src/lib/tree/tree.d.ts +1 -1
- package/src/lib/tree/tree.expand.d.ts +1 -1
- package/src/lib/tree/tree.flatten.d.ts +1 -1
- package/src/lib/type.d.ts +51 -51
- package/src/lib/value/address.d.ts +7 -7
- package/src/lib/value/bound.d.ts +13 -13
- package/src/lib/value/build.d.ts +2 -2
- package/src/lib/value/comparator.d.ts +47 -1
- package/src/lib/value/comparator.js +35 -1
- package/src/lib/value/comparator.js.map +1 -1
- package/src/lib/value/cron.d.ts +1 -1
- package/src/lib/value/decision.d.ts +3 -3
- package/src/lib/value/equal.d.ts +2 -8
- package/src/lib/value/indexed.d.ts +21 -21
- package/src/lib/value/indexed.js.map +1 -1
- package/src/lib/value/map.d.ts +15 -9
- package/src/lib/value/map.js.map +1 -1
- package/src/lib/value/maybe.type.d.ts +4 -4
- package/src/lib/value/modifier.d.ts +3 -3
- package/src/lib/value/pixel.d.ts +2 -2
- package/src/lib/value/point.d.ts +22 -26
- package/src/lib/value/sync.d.ts +2 -2
- package/src/lib/value/sync.js +1 -1
- package/src/lib/value/sync.js.map +1 -1
- package/src/lib/value/use.d.ts +8 -8
- package/src/lib/value/vector.d.ts +5 -5
- package/src/lib/value/zoom.d.ts +1 -1
- package/test/CHANGELOG.md +12 -0
- package/test/package.json +2 -14
- package/test/src/lib/jest.d.ts +5 -5
- package/test/src/lib/jest.fail.d.ts +5 -5
- package/test/src/lib/jest.function.d.ts +7 -7
- package/test/src/lib/jest.wrap.d.ts +1 -1
|
@@ -1,130 +1,197 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.performTasksInParallelFunction = exports.performTasksInParallel = exports.performAsyncTask = exports.performAsyncTasks = exports.runAsyncTasksForValues = exports.runAsyncTaskForValue = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const array_number_1 = require("../array/array.number");
|
|
5
6
|
const wait_1 = require("./wait");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
|
|
9
|
+
*/
|
|
10
|
+
function runAsyncTaskForValue(taskFn, config) {
|
|
11
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
|
+
const { value } = yield performAsyncTask(taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
|
|
13
|
+
return value;
|
|
14
|
+
});
|
|
8
15
|
}
|
|
9
|
-
exports.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
16
|
+
exports.runAsyncTaskForValue = runAsyncTaskForValue;
|
|
17
|
+
/**
|
|
18
|
+
* Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
|
|
19
|
+
*
|
|
20
|
+
* @param input
|
|
21
|
+
* @param taskFn
|
|
22
|
+
* @param config
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
function runAsyncTasksForValues(input, taskFn, config) {
|
|
26
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
const results = yield performAsyncTasks(input, taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
|
|
28
|
+
return results.results.map((x) => x[1]);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
exports.runAsyncTasksForValues = runAsyncTasksForValues;
|
|
32
|
+
/**
|
|
33
|
+
* Performs the input tasks, and will retry tasks if they fail, up to a certain point.
|
|
34
|
+
*
|
|
35
|
+
* This is useful for retrying sections that may experience optimistic concurrency collisions.
|
|
36
|
+
*/
|
|
37
|
+
function performAsyncTasks(input, taskFn, config = { throwError: true }) {
|
|
38
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const { sequential, maxParallelTasks, waitBetweenTasks } = config;
|
|
40
|
+
const taskResults = [];
|
|
41
|
+
yield performTasksInParallelFunction({
|
|
42
|
+
taskFactory: (value, i) => _performAsyncTask(value, taskFn, config).then((x) => {
|
|
43
|
+
taskResults[i] = x;
|
|
44
|
+
}),
|
|
45
|
+
maxParallelTasks,
|
|
46
|
+
sequential,
|
|
47
|
+
waitBetweenTasks
|
|
48
|
+
})(input);
|
|
49
|
+
const succeded = [];
|
|
50
|
+
const failed = [];
|
|
51
|
+
const results = [];
|
|
52
|
+
const errors = [];
|
|
53
|
+
taskResults.forEach((x) => {
|
|
54
|
+
const success = x[2];
|
|
55
|
+
if (success) {
|
|
56
|
+
succeded.push(x[0]);
|
|
57
|
+
results.push([x[0], x[1]]);
|
|
51
58
|
}
|
|
52
59
|
else {
|
|
53
|
-
|
|
60
|
+
failed.push(x[0]);
|
|
61
|
+
errors.push([x[0], x[1]]);
|
|
54
62
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
});
|
|
64
|
+
return {
|
|
65
|
+
succeded,
|
|
66
|
+
failed,
|
|
67
|
+
results,
|
|
68
|
+
errors
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
exports.performAsyncTasks = performAsyncTasks;
|
|
73
|
+
function performAsyncTask(taskFn, config) {
|
|
74
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
const [, value, success] = yield _performAsyncTask(0, () => taskFn(), config);
|
|
76
|
+
return { value, success };
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
exports.performAsyncTask = performAsyncTask;
|
|
80
|
+
function _performAsyncTask(value, taskFn, config = {}) {
|
|
81
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
const { throwError: inputThrowError, retriesAllowed: inputRetriesAllowed, retryWait = 200, beforeRetry } = config;
|
|
83
|
+
const throwError = inputThrowError !== null && inputThrowError !== void 0 ? inputThrowError : true; // throw errors by default
|
|
84
|
+
const retriesAllowed = inputRetriesAllowed ? inputRetriesAllowed : 0;
|
|
85
|
+
function tryTask(value, tryNumber) {
|
|
86
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
try {
|
|
88
|
+
const result = yield taskFn(value, tryNumber);
|
|
89
|
+
return [result, true];
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
return [e, false];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function iterateTask(value, tryNumber) {
|
|
97
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
const result = yield tryTask(value, tryNumber);
|
|
99
|
+
const success = result[1];
|
|
100
|
+
function doNextTry() {
|
|
101
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
const nextTryNumber = tryNumber + 1;
|
|
103
|
+
if (beforeRetry) {
|
|
104
|
+
yield beforeRetry(value, nextTryNumber);
|
|
105
|
+
}
|
|
106
|
+
return iterateTask(value, tryNumber + 1);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
60
109
|
if (success) {
|
|
61
|
-
|
|
62
|
-
|
|
110
|
+
return [value, ...result];
|
|
111
|
+
}
|
|
112
|
+
const retriesRemaining = retriesAllowed - tryNumber;
|
|
113
|
+
if (retriesRemaining > 0) {
|
|
114
|
+
return retryWait ? (0, wait_1.waitForMs)(retryWait).then(() => doNextTry()) : doNextTry();
|
|
63
115
|
}
|
|
64
116
|
else {
|
|
65
|
-
|
|
117
|
+
// Error out.
|
|
118
|
+
if (throwError) {
|
|
119
|
+
throw result[0];
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return [value, undefined, false];
|
|
123
|
+
}
|
|
66
124
|
}
|
|
67
125
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
126
|
+
}
|
|
127
|
+
return iterateTask(value, 0);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Convenience function for calling performTasksInParallelFunction() with the given input.
|
|
132
|
+
*
|
|
133
|
+
* @param input
|
|
134
|
+
* @param config
|
|
135
|
+
* @returns
|
|
136
|
+
*/
|
|
137
|
+
function performTasksInParallel(input, config) {
|
|
138
|
+
return performTasksInParallelFunction(config)(input);
|
|
139
|
+
}
|
|
140
|
+
exports.performTasksInParallel = performTasksInParallel;
|
|
141
|
+
/**
|
|
142
|
+
* Creates a function that performs tasks in parallel.
|
|
143
|
+
*
|
|
144
|
+
* @param config
|
|
145
|
+
*/
|
|
146
|
+
function performTasksInParallelFunction(config) {
|
|
147
|
+
const { taskFactory, sequential, maxParallelTasks: inputMaxParallelTasks, waitBetweenTasks } = config;
|
|
148
|
+
const maxParallelTasks = inputMaxParallelTasks !== null && inputMaxParallelTasks !== void 0 ? inputMaxParallelTasks : (sequential ? 1 : undefined);
|
|
149
|
+
if (!maxParallelTasks) {
|
|
150
|
+
// if the max number of parallel tasks is not defined, then run all tasks at once
|
|
151
|
+
return (input) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
yield Promise.all(input.map((value, i) => taskFactory(value, i)));
|
|
79
153
|
});
|
|
80
154
|
}
|
|
81
|
-
|
|
82
|
-
return
|
|
83
|
-
|
|
84
|
-
return
|
|
85
|
-
try {
|
|
86
|
-
const result = yield taskFn(value, tryNumber);
|
|
87
|
-
return [result, true];
|
|
88
|
-
}
|
|
89
|
-
catch (e) {
|
|
90
|
-
return [e, false];
|
|
91
|
-
}
|
|
92
|
-
});
|
|
155
|
+
else {
|
|
156
|
+
return (input) => {
|
|
157
|
+
if (input.length === 0) {
|
|
158
|
+
return Promise.resolve();
|
|
93
159
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
160
|
+
return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
161
|
+
const maxPromisesToRunAtOneTime = Math.min(maxParallelTasks, input.length);
|
|
162
|
+
const endIndex = input.length;
|
|
163
|
+
let i = 0;
|
|
164
|
+
let finishedParallels = 0;
|
|
165
|
+
let hasEncounteredFailure = false;
|
|
166
|
+
// start initial promises
|
|
167
|
+
function dispatchNextPromise() {
|
|
168
|
+
const hasNext = i < endIndex;
|
|
169
|
+
if (hasNext && !hasEncounteredFailure) {
|
|
170
|
+
const value = input[i];
|
|
171
|
+
const promise = taskFactory(value, i);
|
|
172
|
+
i += 1;
|
|
173
|
+
promise.then(() => {
|
|
174
|
+
setTimeout(dispatchNextPromise, waitBetweenTasks);
|
|
175
|
+
}, (e) => {
|
|
176
|
+
hasEncounteredFailure = true;
|
|
177
|
+
reject(e);
|
|
105
178
|
});
|
|
106
179
|
}
|
|
107
|
-
if (
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return retryWait ? (0, wait_1.waitForMs)(retryWait).then(() => doNextTry()) : doNextTry();
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
// Error out.
|
|
116
|
-
if (throwError) {
|
|
117
|
-
throw result[0];
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
return [value, undefined, false];
|
|
180
|
+
else if (!hasNext) {
|
|
181
|
+
finishedParallels += 1;
|
|
182
|
+
// only resolve after the last parallel is complete
|
|
183
|
+
if (finishedParallels === maxPromisesToRunAtOneTime) {
|
|
184
|
+
resolve();
|
|
121
185
|
}
|
|
122
186
|
}
|
|
187
|
+
}
|
|
188
|
+
// run the initial promises
|
|
189
|
+
(0, array_number_1.range)(0, maxPromisesToRunAtOneTime).forEach(() => {
|
|
190
|
+
dispatchNextPromise();
|
|
123
191
|
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
});
|
|
192
|
+
}));
|
|
193
|
+
};
|
|
127
194
|
}
|
|
128
195
|
}
|
|
129
|
-
exports.
|
|
196
|
+
exports.performTasksInParallelFunction = performTasksInParallelFunction;
|
|
130
197
|
//# sourceMappingURL=promise.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,13 +22,13 @@ export interface PerformTaskCountLoopWithInitConfig<O> extends Omit<PerformTaskL
|
|
|
22
22
|
export declare function performTaskCountLoop<O>(config: PerformTaskCountLoopWithInitConfig<O>): Promise<O>;
|
|
23
23
|
export declare function performTaskCountLoop<O>(config: PerformTaskCountLoopConfig<O>): Promise<Maybe<O>>;
|
|
24
24
|
export declare function performTaskCountLoop(config: PerformTaskCountLoopConfig<void>): Promise<void>;
|
|
25
|
-
export
|
|
25
|
+
export type PerformMakeLoopFunction<O> = (i: number, made: O[]) => Promise<O>;
|
|
26
26
|
export interface PerformMakeLoopConfig<O> {
|
|
27
27
|
make: PerformMakeLoopFunction<O>;
|
|
28
28
|
count: number;
|
|
29
29
|
}
|
|
30
30
|
export declare function performMakeLoop<O>(config: PerformMakeLoopConfig<O>): Promise<O[]>;
|
|
31
|
-
export
|
|
31
|
+
export type PerformBatchLoopFunction<O> = (itemsToMake: number, i: number, made: O[][]) => Promise<O[]>;
|
|
32
32
|
export interface PerformBatchLoopConfig<O> extends BatchCount {
|
|
33
33
|
/**
|
|
34
34
|
* Makes a certain number of items.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A reference to a Promise and its resolve/reject functions.
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
4
|
+
export type PromiseReference<O = unknown> = {
|
|
5
5
|
readonly promise: Promise<O>;
|
|
6
6
|
readonly resolve: (value: O | PromiseLike<O>) => void;
|
|
7
7
|
readonly reject: (reason?: unknown) => void;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
9
|
+
export type PromiseExecutor<O> = (resolve: (value: O | PromiseLike<O>) => void, reject: (reason?: unknown) => void) => void;
|
|
10
10
|
/**
|
|
11
11
|
* Creates a new promise and returns the full ref for it.
|
|
12
12
|
*/
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A promise or a value.
|
|
3
|
+
*/
|
|
4
|
+
export type PromiseOrValue<T> = Promise<T> | T;
|
|
5
|
+
/**
|
|
6
|
+
* Convenience function for calling Promise.resolve
|
|
7
|
+
*
|
|
8
|
+
* @param input
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function asPromise<T>(input: PromiseOrValue<T>): Promise<T>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.asPromise = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Convenience function for calling Promise.resolve
|
|
6
|
+
*
|
|
7
|
+
* @param input
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
function asPromise(input) {
|
|
11
|
+
return Promise.resolve(input);
|
|
12
|
+
}
|
|
13
|
+
exports.asPromise = asPromise;
|
|
14
|
+
//# sourceMappingURL=promise.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise.type.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.type.ts"],"names":[],"mappings":";;;AAKA;;;;;GAKG;AACH,SAAgB,SAAS,CAAI,KAAwB;IACnD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,8BAEC"}
|
package/src/lib/promise/use.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { UseAsync } from '../value';
|
|
|
3
3
|
/**
|
|
4
4
|
* Uses a cached promise value.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export type UsePromiseFunction<I> = <O>(useFn: UseAsync<I, O>) => Promise<O>;
|
|
7
7
|
/**
|
|
8
8
|
* Creates a UsePromiseFunction.
|
|
9
9
|
*
|
|
@@ -31,20 +31,20 @@ export declare enum RelationChange {
|
|
|
31
31
|
*/
|
|
32
32
|
INSERT = "insert"
|
|
33
33
|
}
|
|
34
|
-
export
|
|
35
|
-
export
|
|
36
|
-
export
|
|
37
|
-
export
|
|
38
|
-
export
|
|
39
|
-
export
|
|
34
|
+
export type RelationString = string;
|
|
35
|
+
export type RelationObject = RelationString | object;
|
|
36
|
+
export type RelationModelType = string;
|
|
37
|
+
export type RelationKey = string | number;
|
|
38
|
+
export type ReadRelationKeyFn<T> = (model: T) => RelationKey;
|
|
39
|
+
export type ReadRelationModelTypeFn<T> = (model: T) => RelationModelType;
|
|
40
40
|
/**
|
|
41
41
|
* Merges the two input values. The "a" value is usually the existing/incumbent value, while "b" is the new value.
|
|
42
42
|
*/
|
|
43
|
-
export
|
|
43
|
+
export type MergeRelationObjectsFn<T> = (a: T, b: T) => T;
|
|
44
44
|
/**
|
|
45
45
|
* Whether or not the object is changable as part of this request.
|
|
46
46
|
*/
|
|
47
|
-
export
|
|
47
|
+
export type ChangeRelationObjectsMaskFn<T> = (x: T) => boolean;
|
|
48
48
|
export interface UpdateRelationConfig<T> {
|
|
49
49
|
readKey: ReadRelationKeyFn<T>;
|
|
50
50
|
merge: MergeRelationObjectsFn<T>;
|
|
@@ -35,7 +35,7 @@ var RelationChange;
|
|
|
35
35
|
* Updates an existing relation, if it exists, or creates a new one.
|
|
36
36
|
*/
|
|
37
37
|
RelationChange["INSERT"] = "insert";
|
|
38
|
-
})(RelationChange
|
|
38
|
+
})(RelationChange || (exports.RelationChange = RelationChange = {}));
|
|
39
39
|
/**
|
|
40
40
|
* Utility class for modifying a collection of relational objects.
|
|
41
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/relation/relation.ts"],"names":[],"mappings":";;;AAAA,oCAA0D;AAC1D,0CAAuG;AAGvG,IAAY,cA+BX;AA/BD,WAAY,cAAc;IACxB;;;;;OAKG;IACH,6BAAW,CAAA;IACX;;OAEG;IACH,6BAAW,CAAA;IACX;;;;OAIG;IACH,yDAAuC,CAAA;IACvC;;OAEG;IACH,mCAAiB,CAAA;IACjB;;;OAGG;IACH,mCAAiB,CAAA;IACjB;;OAEG;IACH,mCAAiB,CAAA;AACnB,CAAC,EA/BW,cAAc,
|
|
1
|
+
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/relation/relation.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export declare function handlerBindAccessor<T, K extends PrimativeKey = string>(
|
|
|
20
20
|
/**
|
|
21
21
|
* Contextual function that configures the context's Handler with the input function for the context's key.
|
|
22
22
|
*/
|
|
23
|
-
export
|
|
23
|
+
export type HandlerSetFunction<T> = (handlerFunction: HandlerFunction<T>) => void;
|
|
24
24
|
/**
|
|
25
25
|
* Creates a HandlerSetFunction.
|
|
26
26
|
*
|
|
@@ -29,16 +29,16 @@ export declare type HandlerSetFunction<T> = (handlerFunction: HandlerFunction<T>
|
|
|
29
29
|
* @returns
|
|
30
30
|
*/
|
|
31
31
|
export declare function handlerSetFunction<T, K extends PrimativeKey = string>(accessor: HandlerSetAccessor<T, K>, key: ArrayOrValue<K>): HandlerSetFunction<T>;
|
|
32
|
-
export
|
|
32
|
+
export type HandlerMappedSetFunction<I> = (handlerFunction: HandlerFunction<I>) => void;
|
|
33
33
|
export declare function handlerMappedSetFunction<I, T, K extends PrimativeKey = string>(accessor: HandlerSetAccessor<T, K>, key: ArrayOrValue<K>, mapFn: MapFunction<T, I>): HandlerMappedSetFunction<I>;
|
|
34
34
|
/**
|
|
35
35
|
* Factory for a HandlerMappedSetFunction<I>.
|
|
36
36
|
*/
|
|
37
|
-
export
|
|
37
|
+
export type HandlerMappedSetFunctionFactory<I, K extends PrimativeKey = string> = (key: ArrayOrValue<K>) => HandlerMappedSetFunction<I>;
|
|
38
38
|
export declare function handlerMappedSetFunctionFactory<I, T, K extends PrimativeKey = string>(accessor: HandlerSetAccessor<T, K>, mapFn: MapFunction<T, I>): HandlerMappedSetFunctionFactory<I, K>;
|
|
39
|
-
export
|
|
40
|
-
export
|
|
41
|
-
export
|
|
39
|
+
export type HandlerConfigurerFunction<C extends HandlerBindAccessor<T, K>, T, K extends PrimativeKey = string> = (configurer: C) => void;
|
|
40
|
+
export type HandlerConfigurer<C extends HandlerBindAccessor<T, K>, T, K extends PrimativeKey = string> = (bindTo: unknown, configure: HandlerConfigurerFunction<C, T, K>) => void;
|
|
41
|
+
export type HandlerConfigurerFactory<C extends HandlerBindAccessor<T, K>, T, K extends PrimativeKey = string> = (handler: Handler<T, K>) => HandlerConfigurer<C, T, K>;
|
|
42
42
|
/**
|
|
43
43
|
* Config for handlerConfigurerFactory().
|
|
44
44
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PrimativeKey, ReadKeyFunction } from '../key';
|
|
2
2
|
import { ArrayOrValue } from '../array/array';
|
|
3
|
-
import { PromiseOrValue } from '../promise/promise';
|
|
3
|
+
import { PromiseOrValue } from '../promise/promise.type';
|
|
4
4
|
/**
|
|
5
5
|
* Key used to signify
|
|
6
6
|
*/
|
|
@@ -8,15 +8,15 @@ export declare const CATCH_ALL_HANDLE_RESULT_KEY = "__CATCH_ALL_HANDLE_RESULT_KE
|
|
|
8
8
|
/**
|
|
9
9
|
* Whether or not the input value was handled.
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
11
|
+
export type HandleResult = boolean;
|
|
12
|
+
export type HandlerCatchAllKey = typeof CATCH_ALL_HANDLE_RESULT_KEY;
|
|
13
|
+
export type HandlerKey<K extends PrimativeKey = string> = K | HandlerCatchAllKey;
|
|
14
14
|
/**
|
|
15
15
|
* Used to perform a task on the input value.
|
|
16
16
|
*
|
|
17
17
|
* If the value is not used/"handled", returns false.
|
|
18
18
|
*/
|
|
19
|
-
export
|
|
19
|
+
export type HandlerFunction<T> = (value: T) => PromiseOrValue<HandleResult>;
|
|
20
20
|
export interface HandlerSetAccessor<T, K extends PrimativeKey = string> {
|
|
21
21
|
/**
|
|
22
22
|
* Adds a new handler function to the current handler.
|
|
@@ -40,8 +40,8 @@ export interface HandlerAccessor<T, K extends PrimativeKey = string> extends Han
|
|
|
40
40
|
*/
|
|
41
41
|
bindSet(bindTo: unknown, key: ArrayOrValue<HandlerKey<K>>, handle: HandlerFunction<T>): void;
|
|
42
42
|
}
|
|
43
|
-
export
|
|
44
|
-
export
|
|
43
|
+
export type Handler<T, K extends PrimativeKey = string> = HandlerFunction<T> & HandlerAccessor<T, K>;
|
|
44
|
+
export type HandlerFactory<T, K extends PrimativeKey = string> = () => Handler<T, K>;
|
|
45
45
|
export declare function handlerFactory<T, K extends PrimativeKey = string>(readKey: ReadKeyFunction<T, K>): HandlerFactory<T, K>;
|
|
46
46
|
export declare function makeHandler<T, K extends PrimativeKey = string>(readKey: ReadKeyFunction<T, K>): Handler<T, K>;
|
|
47
47
|
export declare function catchAllHandlerKey(): typeof CATCH_ALL_HANDLE_RESULT_KEY;
|
package/src/lib/set/set.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { IterableOrValue } from '../iterable/iterable';
|
|
|
3
3
|
import { PrimativeKey, ReadKeyFunction } from '../key';
|
|
4
4
|
import { SetIncludesMode } from './set.mode';
|
|
5
5
|
import { DecisionFunction } from '../value/decision';
|
|
6
|
-
import { MapFunction } from '../value';
|
|
7
|
-
export
|
|
6
|
+
import { MapFunction } from '../value/map';
|
|
7
|
+
export type AllOrNoneSelection = 'all' | 'none';
|
|
8
8
|
export declare function asSet<T>(values: IterableOrValue<T>): Set<T>;
|
|
9
9
|
export declare function copySetAndDo<T>(set: Set<T>, fn: (set: Set<T>) => void): Set<T>;
|
|
10
10
|
export declare function addToSetCopy<T>(set: Set<T>, values: Maybe<IterableOrValue<T>>): Set<T>;
|
|
@@ -13,8 +13,8 @@ export declare function toggleInSetCopy<T>(set: Set<T>, values: Maybe<IterableOr
|
|
|
13
13
|
export declare function toggleInSet<T>(set: Set<T>, values: Maybe<IterableOrValue<T>>): void;
|
|
14
14
|
export declare function removeFromSetCopy<T>(set: Set<T>, values: Maybe<IterableOrValue<T>>): Set<T>;
|
|
15
15
|
export declare function removeFromSet<T>(set: Set<T>, values: Maybe<IterableOrValue<T>>): void;
|
|
16
|
-
export declare function hasDifferentValues<T>(a: Maybe<Iterable<T>>, b: Maybe<Iterable<T>>): boolean;
|
|
17
16
|
export declare function hasSameValues<T>(a: Maybe<Iterable<T>>, b: Maybe<Iterable<T>>): boolean;
|
|
17
|
+
export declare function hasDifferentValues<T>(a: Maybe<Iterable<T>>, b: Maybe<Iterable<T>>): boolean;
|
|
18
18
|
export declare function symmetricDifferenceArray<T>(a: Maybe<Iterable<T>>, b: Maybe<Iterable<T>>): Maybe<T>[];
|
|
19
19
|
export declare function symmetricDifferenceArrayBetweenSets<T>(a: Set<Maybe<T>>, b: Set<Maybe<T>>): Maybe<T>[];
|
|
20
20
|
export declare function flattenArrayToSet<T>(array: T[][]): Set<T>;
|
|
@@ -63,7 +63,7 @@ export interface SeparateValuesToSetsResult<T> {
|
|
|
63
63
|
/**
|
|
64
64
|
* Optional sets input that allows specifying specific sets to add the included/excluded values to.
|
|
65
65
|
*/
|
|
66
|
-
export
|
|
66
|
+
export type SeparateValuesToSetsInput<T> = Partial<SeparateValuesToSetsResult<T>>;
|
|
67
67
|
/**
|
|
68
68
|
* Filters the input iterable using a DecisionFunction and returns a Set.
|
|
69
69
|
*
|
|
@@ -91,7 +91,7 @@ export declare function hasValueFunction<T>(iterable: IterableOrValue<T>, exclud
|
|
|
91
91
|
/**
|
|
92
92
|
* Returns true if the set has the value. Alternatively, this function can be configured to work in exclusion mode, and may return the opposite.
|
|
93
93
|
*/
|
|
94
|
-
export
|
|
94
|
+
export type SetHasValueFunction<T> = (value: T) => boolean;
|
|
95
95
|
/**
|
|
96
96
|
* Creates a SetHasValueFunction. May create a function that returns the inverse.
|
|
97
97
|
*
|
|
@@ -134,7 +134,7 @@ export declare function findValuesFrom<T, K extends PrimativeKey = PrimativeKey>
|
|
|
134
134
|
/**
|
|
135
135
|
* Contextual decision function that checks whether or not the input values are included.
|
|
136
136
|
*/
|
|
137
|
-
export
|
|
137
|
+
export type SetIncludesFunction<T> = (valuesToFind: IterableOrValue<T>) => boolean;
|
|
138
138
|
/**
|
|
139
139
|
* Creates a SetIncludesFunction using the input valuesSet and optional mode. By default the mode defaults to 'all'.
|
|
140
140
|
*
|
|
@@ -221,15 +221,3 @@ export declare function iterablesAreSetEquivalent<T>(a: Maybe<Iterable<T>>, b: M
|
|
|
221
221
|
* @param b
|
|
222
222
|
*/
|
|
223
223
|
export declare function setsAreEquivalent<T>(a: Maybe<Set<T>>, b: Maybe<Set<T>>): boolean;
|
|
224
|
-
/**
|
|
225
|
-
* @deprecated use symmetricDifferenceArray
|
|
226
|
-
*/
|
|
227
|
-
export declare const symmetricDifferenceKeys: typeof symmetricDifferenceArray;
|
|
228
|
-
/**
|
|
229
|
-
* @deprecated use symmetricDifferenceArrayBetweenSets
|
|
230
|
-
*/
|
|
231
|
-
export declare const symmetricDifferenceKeysSet: typeof symmetricDifferenceArrayBetweenSets;
|
|
232
|
-
/**
|
|
233
|
-
* @deprecated use filterValuesUsingSet
|
|
234
|
-
*/
|
|
235
|
-
export declare const filterValuesFromSet: typeof filterValuesUsingSet;
|
|
@@ -2,7 +2,7 @@ import { DecisionFunction } from './../value/decision';
|
|
|
2
2
|
/**
|
|
3
3
|
* DecisionFunction that checks whether or not the input is in the set, or the input's value is in the set.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
5
|
+
export type IsInSetDecisionFunction<T, V> = DecisionFunction<T> & {
|
|
6
6
|
readonly _readValue: (input: T) => V;
|
|
7
7
|
readonly _set: Set<V>;
|
|
8
8
|
};
|