@oscarpalmer/atoms 0.221.0 → 0.223.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/dist/array/difference.d.mts +1 -3
- package/dist/array/difference.mjs +2 -3
- package/dist/array/exists.d.mts +1 -3
- package/dist/array/exists.mjs +11 -6
- package/dist/array/filter.d.mts +1 -3
- package/dist/array/filter.mjs +15 -6
- package/dist/array/find.d.mts +1 -3
- package/dist/array/find.mjs +9 -5
- package/dist/array/first.d.mts +1 -3
- package/dist/array/first.mjs +10 -5
- package/dist/array/flatten.d.mts +1 -3
- package/dist/array/flatten.mjs +1 -2
- package/dist/array/from.d.mts +1 -3
- package/dist/array/from.mjs +1 -2
- package/dist/array/group-by.d.mts +1 -3
- package/dist/array/group-by.mjs +1 -2
- package/dist/array/index.d.mts +4 -4
- package/dist/array/insert.d.mts +1 -3
- package/dist/array/insert.mjs +2 -3
- package/dist/array/intersection.d.mts +1 -3
- package/dist/array/intersection.mjs +2 -3
- package/dist/array/last.d.mts +1 -3
- package/dist/array/last.mjs +12 -5
- package/dist/array/move.d.mts +1 -3
- package/dist/array/move.mjs +1 -2
- package/dist/array/partition.d.mts +1 -3
- package/dist/array/partition.mjs +24 -5
- package/dist/array/push.d.mts +0 -2
- package/dist/array/push.mjs +2 -3
- package/dist/array/reverse.d.mts +1 -3
- package/dist/array/reverse.mjs +1 -2
- package/dist/array/select.d.mts +0 -2
- package/dist/array/select.mjs +40 -9
- package/dist/array/single.d.mts +1 -3
- package/dist/array/single.mjs +9 -7
- package/dist/array/slice.d.mts +1 -3
- package/dist/array/slice.mjs +1 -2
- package/dist/array/sort.d.mts +0 -2
- package/dist/array/sort.mjs +2 -3
- package/dist/array/splice.d.mts +1 -3
- package/dist/array/splice.mjs +2 -3
- package/dist/array/swap.d.mts +0 -2
- package/dist/array/swap.mjs +2 -3
- package/dist/array/to-map.d.mts +1 -3
- package/dist/array/to-map.mjs +1 -2
- package/dist/array/to-record.d.mts +1 -3
- package/dist/array/to-record.mjs +1 -2
- package/dist/array/to-set.d.mts +1 -3
- package/dist/array/to-set.mjs +1 -2
- package/dist/array/toggle.d.mts +1 -3
- package/dist/array/toggle.mjs +1 -2
- package/dist/array/union.d.mts +1 -3
- package/dist/array/union.mjs +2 -3
- package/dist/array/unique.d.mts +1 -3
- package/dist/array/unique.mjs +18 -5
- package/dist/array/update.d.mts +1 -3
- package/dist/array/update.mjs +1 -2
- package/dist/beacon.d.mts +3 -13
- package/dist/beacon.mjs +10 -21
- package/dist/color/constants.d.mts +1 -7
- package/dist/color/constants.mjs +3 -11
- package/dist/color/index.d.mts +0 -2
- package/dist/color/index.mjs +4 -5
- package/dist/color/instance.d.mts +1 -3
- package/dist/color/instance.mjs +5 -8
- package/dist/color/misc/alpha.d.mts +1 -3
- package/dist/color/misc/alpha.mjs +1 -2
- package/dist/color/misc/format.d.mts +1 -3
- package/dist/color/misc/format.mjs +1 -2
- package/dist/color/misc/get.d.mts +1 -3
- package/dist/color/misc/get.mjs +2 -3
- package/dist/color/misc/is.d.mts +1 -11
- package/dist/color/misc/is.mjs +4 -16
- package/dist/color/misc/state.d.mts +1 -3
- package/dist/color/misc/state.mjs +4 -5
- package/dist/color/space/hex.d.mts +1 -3
- package/dist/color/space/hex.mjs +2 -3
- package/dist/color/space/hsl.d.mts +1 -3
- package/dist/color/space/hsl.mjs +2 -3
- package/dist/color/space/hwb.d.mts +1 -3
- package/dist/color/space/hwb.mjs +3 -4
- package/dist/color/space/rgb.d.mts +1 -3
- package/dist/color/space/rgb.mjs +1 -2
- package/dist/function/limit.d.mts +1 -3
- package/dist/function/limit.mjs +2 -3
- package/dist/function/once.d.mts +1 -3
- package/dist/function/once.mjs +8 -9
- package/dist/function/retry.d.mts +1 -3
- package/dist/function/retry.mjs +11 -12
- package/dist/herald.d.mts +2 -2
- package/dist/herald.mjs +1 -1
- package/dist/index.d.mts +81 -359
- package/dist/index.mjs +514 -661
- package/dist/internal/aborter.d.mts +1 -3
- package/dist/internal/aborter.mjs +1 -2
- package/dist/internal/array/callbacks.d.mts +2 -4
- package/dist/internal/array/callbacks.mjs +1 -2
- package/dist/internal/array/chunk.d.mts +1 -3
- package/dist/internal/array/chunk.mjs +1 -2
- package/dist/internal/array/compact.d.mts +1 -3
- package/dist/internal/array/compact.mjs +1 -2
- package/dist/internal/array/find.d.mts +2 -8
- package/dist/internal/array/find.mjs +31 -124
- package/dist/internal/array/get.d.mts +1 -3
- package/dist/internal/array/get.mjs +1 -2
- package/dist/internal/array/group.d.mts +1 -3
- package/dist/internal/array/group.mjs +1 -2
- package/dist/internal/array/index-of.d.mts +1 -3
- package/dist/internal/array/index-of.mjs +10 -5
- package/dist/internal/array/insert.d.mts +1 -3
- package/dist/internal/array/insert.mjs +2 -3
- package/dist/internal/array/match.d.mts +2 -4
- package/dist/internal/array/match.mjs +2 -3
- package/dist/internal/array/overlap.d.mts +1 -3
- package/dist/internal/array/overlap.mjs +1 -2
- package/dist/internal/array/sets.d.mts +1 -3
- package/dist/internal/array/sets.mjs +5 -6
- package/dist/internal/array/shuffle.d.mts +1 -3
- package/dist/internal/array/shuffle.mjs +1 -2
- package/dist/internal/array/update.d.mts +1 -3
- package/dist/internal/array/update.mjs +1 -2
- package/dist/internal/defaults.d.mts +1 -3
- package/dist/internal/defaults.mjs +1 -2
- package/dist/internal/function/assert.d.mts +1 -3
- package/dist/internal/function/assert.mjs +1 -2
- package/dist/internal/function/limit.d.mts +2 -4
- package/dist/internal/function/limit.mjs +8 -9
- package/dist/internal/function/memoize.d.mts +1 -3
- package/dist/internal/function/memoize.mjs +4 -5
- package/dist/internal/function/misc.d.mts +1 -2
- package/dist/internal/function/misc.mjs +7 -3
- package/dist/internal/function/work.d.mts +1 -3
- package/dist/internal/function/work.mjs +5 -13
- package/dist/internal/herald.d.mts +2 -12
- package/dist/internal/herald.mjs +9 -33
- package/dist/internal/is.d.mts +1 -3
- package/dist/internal/is.mjs +1 -2
- package/dist/internal/math/aggregate.d.mts +1 -3
- package/dist/internal/math/aggregate.mjs +2 -3
- package/dist/internal/math/misc.d.mts +1 -3
- package/dist/internal/math/misc.mjs +1 -2
- package/dist/internal/number.d.mts +1 -3
- package/dist/internal/number.mjs +2 -3
- package/dist/internal/plan/index.d.mts +1 -3
- package/dist/internal/plan/index.mjs +2 -3
- package/dist/internal/plan/plan.generate.d.mts +1 -3
- package/dist/internal/plan/plan.generate.mjs +67 -22
- package/dist/internal/random.d.mts +1 -3
- package/dist/internal/random.mjs +1 -2
- package/dist/internal/result/attempt.d.mts +1 -3
- package/dist/internal/result/attempt.mjs +1 -2
- package/dist/internal/result/misc.d.mts +1 -3
- package/dist/internal/result/misc.mjs +1 -2
- package/dist/internal/sized/map.d.mts +4 -3
- package/dist/internal/sized/map.mjs +4 -2
- package/dist/internal/sized/misc.d.mts +1 -3
- package/dist/internal/sized/misc.mjs +1 -2
- package/dist/internal/string/case.d.mts +1 -3
- package/dist/internal/string/case.mjs +3 -4
- package/dist/internal/string/misc.d.mts +1 -3
- package/dist/internal/string/misc.mjs +1 -2
- package/dist/internal/subscription.d.mts +1 -3
- package/dist/internal/subscription.mjs +16 -29
- package/dist/internal/value/compare.d.mts +1 -3
- package/dist/internal/value/compare.mjs +2 -3
- package/dist/internal/value/equal.d.mts +1 -3
- package/dist/internal/value/equal.mjs +3 -4
- package/dist/internal/value/get.d.mts +1 -3
- package/dist/internal/value/get.mjs +1 -2
- package/dist/internal/value/handlers.d.mts +1 -3
- package/dist/internal/value/handlers.mjs +1 -2
- package/dist/internal/value/has.d.mts +1 -3
- package/dist/internal/value/has.mjs +1 -2
- package/dist/internal/value/misc.d.mts +1 -3
- package/dist/internal/value/misc.mjs +2 -3
- package/dist/internal/value/partial.d.mts +1 -3
- package/dist/internal/value/partial.mjs +1 -2
- package/dist/internal/value/set.d.mts +1 -3
- package/dist/internal/value/set.mjs +2 -3
- package/dist/is.d.mts +0 -2
- package/dist/is.mjs +2 -3
- package/dist/logger.d.mts +0 -2
- package/dist/logger.mjs +7 -7
- package/dist/math.d.mts +0 -2
- package/dist/math.mjs +2 -3
- package/dist/models/aborter.model.d.mts +1 -3
- package/dist/models/aborter.model.mjs +1 -2
- package/dist/models/array/array.match.model.d.mts +1 -3
- package/dist/models/array/array.match.model.mjs +1 -2
- package/dist/models/array/array.misc.model.d.mts +11 -2
- package/dist/models/array/array.misc.model.mjs +3 -3
- package/dist/models/array/array.sort.model.d.mts +1 -3
- package/dist/models/array/array.sort.model.mjs +1 -2
- package/dist/models/beacon.model.d.mts +4 -6
- package/dist/models/beacon.model.mjs +3 -10
- package/dist/models/color.model.d.mts +2 -4
- package/dist/models/function/assert.model.d.mts +1 -3
- package/dist/models/function/assert.model.mjs +1 -2
- package/dist/models/function/limiter.model.d.mts +2 -4
- package/dist/models/function/limiter.model.mjs +2 -4
- package/dist/models/function/memoize.model.d.mts +2 -4
- package/dist/models/function/memoize.model.mjs +1 -2
- package/dist/models/function/once.model.d.mts +0 -3
- package/dist/models/function/once.model.mjs +3 -5
- package/dist/models/function/retry.model.d.mts +1 -3
- package/dist/models/function/retry.model.mjs +1 -2
- package/dist/models/function/work.model.d.mts +2 -4
- package/dist/models/function/work.model.mjs +1 -2
- package/dist/models/herald.model.d.mts +8 -7
- package/dist/models/herald.model.mjs +3 -10
- package/dist/models/index.d.mts +0 -2
- package/dist/models/logger.model.d.mts +1 -4
- package/dist/models/logger.model.mjs +3 -5
- package/dist/models/math.model.d.mts +1 -3
- package/dist/models/math.model.mjs +1 -2
- package/dist/models/misc.model.d.mts +1 -3
- package/dist/models/misc.model.mjs +1 -2
- package/dist/models/plan.model.d.mts +35 -37
- package/dist/models/plan.model.mjs +1 -2
- package/dist/models/promise.model.d.mts +8 -10
- package/dist/models/promise.model.mjs +4 -5
- package/dist/models/query.model.d.mts +1 -3
- package/dist/models/query.model.mjs +1 -2
- package/dist/models/queue.model.d.mts +0 -3
- package/dist/models/queue.model.mjs +3 -5
- package/dist/models/random.model.d.mts +1 -3
- package/dist/models/random.model.mjs +1 -2
- package/dist/models/result.model.d.mts +0 -2
- package/dist/models/string/string.case.model.d.mts +1 -3
- package/dist/models/string/string.case.model.mjs +1 -2
- package/dist/models/string/string.fuzzy.model.d.mts +0 -3
- package/dist/models/string/string.fuzzy.model.mjs +3 -5
- package/dist/models/string/string.misc.model.d.mts +1 -3
- package/dist/models/string/string.misc.model.mjs +1 -2
- package/dist/models/string/string.normalize.model.d.mts +1 -3
- package/dist/models/string/string.normalize.model.mjs +1 -2
- package/dist/models/string/string.template.model.d.mts +1 -3
- package/dist/models/string/string.template.model.mjs +1 -2
- package/dist/models/subscription.model.d.mts +4 -23
- package/dist/models/subscription.model.mjs +3 -5
- package/dist/models/value/value.clone.model.d.mts +1 -3
- package/dist/models/value/value.clone.model.mjs +1 -2
- package/dist/models/value/value.diff.model.d.mts +1 -3
- package/dist/models/value/value.diff.model.mjs +1 -2
- package/dist/models/value/value.equal.model.d.mts +0 -2
- package/dist/models/value/value.equal.model.mjs +1 -2
- package/dist/models/value/value.handler.model.d.mts +1 -3
- package/dist/models/value/value.merge.model.d.mts +0 -2
- package/dist/models/value/value.merge.model.mjs +1 -2
- package/dist/models/value/value.misc.model.d.mts +0 -2
- package/dist/models/value/value.misc.model.mjs +1 -2
- package/dist/models/value/value.transform.model.d.mts +1 -3
- package/dist/models/value/value.transform.model.mjs +1 -2
- package/dist/plan/index.d.mts +1 -3
- package/dist/plan/index.mjs +2 -3
- package/dist/plan/is.d.mts +1 -3
- package/dist/plan/is.mjs +1 -2
- package/dist/plan/misc.d.mts +1 -3
- package/dist/plan/misc.mjs +2 -3
- package/dist/plan/models.d.mts +2 -2
- package/dist/plan/result.d.mts +8 -10
- package/dist/plan/result.mjs +2 -3
- package/dist/plan/run.d.mts +8 -10
- package/dist/plan/run.mjs +2 -3
- package/dist/plan/use.d.mts +1 -3
- package/dist/plan/use.mjs +14 -9
- package/dist/promise/delay.d.mts +1 -3
- package/dist/promise/delay.mjs +2 -3
- package/dist/promise/helpers.d.mts +1 -3
- package/dist/promise/helpers.mjs +2 -3
- package/dist/promise/index.d.mts +0 -2
- package/dist/promise/index.mjs +5 -6
- package/dist/promise/misc.d.mts +1 -3
- package/dist/promise/misc.mjs +2 -3
- package/dist/promise/models.d.mts +2 -2
- package/dist/promise/models.mjs +1 -1
- package/dist/promise/timed.d.mts +1 -3
- package/dist/promise/timed.mjs +4 -5
- package/dist/query.d.mts +1 -3
- package/dist/query.mjs +2 -3
- package/dist/queue.d.mts +0 -2
- package/dist/queue.mjs +11 -12
- package/dist/random.d.mts +0 -2
- package/dist/random.mjs +2 -3
- package/dist/result/match.d.mts +1 -3
- package/dist/result/match.mjs +1 -2
- package/dist/result/misc.d.mts +0 -2
- package/dist/result/misc.mjs +1 -2
- package/dist/result/work/flow.d.mts +1 -3
- package/dist/result/work/flow.mjs +5 -12
- package/dist/result/work/pipe.d.mts +0 -2
- package/dist/result/work/pipe.mjs +2 -3
- package/dist/sized/set.d.mts +4 -3
- package/dist/sized/set.mjs +4 -2
- package/dist/string/fuzzy.d.mts +0 -2
- package/dist/string/fuzzy.mjs +5 -7
- package/dist/string/index.d.mts +0 -2
- package/dist/string/index.mjs +2 -3
- package/dist/string/match.d.mts +1 -3
- package/dist/string/match.mjs +2 -3
- package/dist/string/normalize.d.mts +0 -2
- package/dist/string/normalize.mjs +3 -4
- package/dist/string/template.d.mts +0 -2
- package/dist/string/template.mjs +1 -2
- package/dist/subscription.d.mts +2 -2
- package/dist/value/clone.d.mts +1 -3
- package/dist/value/clone.mjs +2 -3
- package/dist/value/collection.d.mts +1 -3
- package/dist/value/collection.mjs +1 -2
- package/dist/value/diff.d.mts +0 -2
- package/dist/value/diff.mjs +1 -2
- package/dist/value/freeze.d.mts +1 -3
- package/dist/value/freeze.mjs +1 -2
- package/dist/value/handle.mjs +1 -1
- package/dist/value/merge.d.mts +0 -2
- package/dist/value/merge.mjs +1 -2
- package/dist/value/omit.d.mts +1 -3
- package/dist/value/omit.mjs +1 -2
- package/dist/value/pick.d.mts +1 -3
- package/dist/value/pick.mjs +1 -2
- package/dist/value/shake.d.mts +0 -2
- package/dist/value/shake.mjs +1 -2
- package/dist/value/smush.d.mts +0 -2
- package/dist/value/smush.mjs +2 -3
- package/dist/value/transform.d.mts +0 -2
- package/dist/value/transform.mjs +1 -2
- package/dist/value/unsmush.d.mts +0 -2
- package/dist/value/unsmush.mjs +1 -2
- package/package.json +6 -6
- package/dist/models/array/array.find.model.d.mts +0 -48
- package/dist/models/array/array.find.model.mjs +0 -8
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
import { Aborter } from "../models/aborter.model.mjs";
|
|
2
|
-
|
|
3
|
-
export declare function createAborter(value: unknown, onAbort: () => void): Aborter | undefined;
|
|
4
|
-
//#endregion
|
|
2
|
+
export declare function createAborter(value: unknown, onAbort: () => void): Aborter | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ABORTER_EVENT, ABORTER_OPTIONS } from "../models/aborter.model.mjs";
|
|
2
|
-
|
|
2
|
+
// src/internal/aborter.ts
|
|
3
3
|
function createAborter(value, onAbort) {
|
|
4
4
|
if (!(value instanceof AbortSignal)) return;
|
|
5
5
|
value.addEventListener(ABORTER_EVENT, onAbort, ABORTER_OPTIONS);
|
|
@@ -9,5 +9,4 @@ function createAborter(value, onAbort) {
|
|
|
9
9
|
cancel: () => value.removeEventListener(ABORTER_EVENT, onAbort)
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
//#endregion
|
|
13
12
|
export { createAborter };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { GenericCallback } from "../../models/index.mjs";
|
|
2
1
|
import { ArrayGetCallbacks } from "../../models/array/array.misc.model.mjs";
|
|
3
|
-
|
|
2
|
+
import { GenericCallback } from "../../models/index.mjs";
|
|
4
3
|
export declare function getArrayCallback(value: unknown): GenericCallback | undefined;
|
|
5
|
-
export declare function getArrayCallbacks(bool?: unknown, key?: unknown, value?: unknown): ArrayGetCallbacks | undefined;
|
|
6
|
-
//#endregion
|
|
4
|
+
export declare function getArrayCallbacks(bool?: unknown, key?: unknown, value?: unknown): ArrayGetCallbacks | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/array/callbacks.ts
|
|
2
2
|
function getArrayCallback(value) {
|
|
3
3
|
switch (typeof value) {
|
|
4
4
|
case "function": return value;
|
|
@@ -14,5 +14,4 @@ function getArrayCallbacks(bool, key, value) {
|
|
|
14
14
|
value: getArrayCallback(value)
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
//#endregion
|
|
18
17
|
export { getArrayCallback, getArrayCallbacks };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/internal/array/chunk.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Chunk an array into smaller arrays
|
|
4
3
|
*
|
|
@@ -11,5 +10,4 @@
|
|
|
11
10
|
* chunk([1, 2, 3, 4, 5], 2); // => [[1, 2], [3, 4], [5]]
|
|
12
11
|
* ```
|
|
13
12
|
*/
|
|
14
|
-
export declare function chunk<Item>(array: Item[], size?: number): Item[][];
|
|
15
|
-
//#endregion
|
|
13
|
+
export declare function chunk<Item>(array: Item[], size?: number): Item[][];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ARRAY_CHUNK_MAX_SIZE } from "../../models/array/array.misc.model.mjs";
|
|
2
|
-
|
|
2
|
+
// src/internal/array/chunk.ts
|
|
3
3
|
/**
|
|
4
4
|
* Chunk an array into smaller arrays
|
|
5
5
|
*
|
|
@@ -26,5 +26,4 @@ function chunk(array, size) {
|
|
|
26
26
|
}
|
|
27
27
|
return chunks;
|
|
28
28
|
}
|
|
29
|
-
//#endregion
|
|
30
29
|
export { chunk };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/internal/array/compact.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Compact an array _(removing all false-y values)_
|
|
4
3
|
*
|
|
@@ -23,5 +22,4 @@ export declare function compact<Item>(array: Item[], strict: true): Array<Exclud
|
|
|
23
22
|
* compact([0, 1, '', 'hello', false, true, null, undefined]); // => [0, 1, '', 'hello', false, true]
|
|
24
23
|
* ```
|
|
25
24
|
*/
|
|
26
|
-
export declare function compact<Item>(array: Item[]): Array<Exclude<Item, null | undefined>>;
|
|
27
|
-
//#endregion
|
|
25
|
+
export declare function compact<Item>(array: Item[]): Array<Exclude<Item, null | undefined>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/array/compact.ts
|
|
2
2
|
function compact(array, strict) {
|
|
3
3
|
if (!Array.isArray(array)) return [];
|
|
4
4
|
if (strict === true) return array.filter(Boolean);
|
|
@@ -10,5 +10,4 @@ function compact(array, strict) {
|
|
|
10
10
|
}
|
|
11
11
|
return compacted;
|
|
12
12
|
}
|
|
13
|
-
//#endregion
|
|
14
13
|
export { compact };
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare function createFindParameters(original: unknown[]): ArrayParameters;
|
|
4
|
-
export declare function findAbsoluteValueOrDefault(array: unknown[], parameters: unknown[], defaultValue: unknown, useDefaultValue: boolean, reversed: boolean): unknown;
|
|
5
|
-
export declare function findValue(type: Exclude<ArrayFindValueType, "item">, array: unknown[], parameters: unknown[], reversed: boolean): number;
|
|
6
|
-
export declare function findValue(type: Exclude<ArrayFindValueType, "index">, array: unknown[], parameters: unknown[], reversed: boolean): unknown;
|
|
7
|
-
export declare function findValues(type: ArrayFindValuesType, array: unknown[], parameters: unknown[], options?: ArrayFindOptions): ArrayFindValuesResult;
|
|
8
|
-
//#endregion
|
|
1
|
+
import { ArrayFindParameters, ArrayFindResult } from "../../models/array/array.misc.model.mjs";
|
|
2
|
+
export declare function findValue(array: unknown[], parameters: ArrayFindParameters): ArrayFindResult | undefined;
|
|
@@ -1,132 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const { length } = array;
|
|
11
|
-
for (let index = 0; index < length; index += 1) result.matched.push(array[index]);
|
|
12
|
-
}
|
|
13
|
-
function createFindParameters(original) {
|
|
14
|
-
const { length } = original;
|
|
15
|
-
return {
|
|
16
|
-
bool: length === 1 && typeof original[0] === "function" ? original[0] : void 0,
|
|
17
|
-
key: length === 2 ? original[0] : void 0,
|
|
18
|
-
value: length === 1 && typeof original[0] !== "function" ? original[0] : original[1]
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function findAbsoluteValueOrDefault(array, parameters, defaultValue, useDefaultValue, reversed) {
|
|
22
|
-
if (parameters.length === 0) {
|
|
23
|
-
if (Array.isArray(array) && array.length > 0) return reversed ? array.at(-1) : array[0];
|
|
24
|
-
return useDefaultValue ? defaultValue : void 0;
|
|
25
|
-
}
|
|
26
|
-
const index = findValue(ARRAY_FIND_VALUE_INDEX, array, parameters, reversed);
|
|
27
|
-
if (index === -1) return useDefaultValue ? defaultValue : void 0;
|
|
28
|
-
return array[index];
|
|
29
|
-
}
|
|
30
|
-
function findComplexValues(parameters) {
|
|
31
|
-
const { array, arrayLength, callback, limit, result, type, value } = parameters;
|
|
32
|
-
const keys = /* @__PURE__ */ new Set();
|
|
33
|
-
for (let arrayIndex = 0; arrayIndex < arrayLength; arrayIndex += 1) {
|
|
34
|
-
const arrayItem = array[arrayIndex];
|
|
35
|
-
const keyed = callback == null ? arrayItem : callback(arrayItem, arrayIndex, array);
|
|
36
|
-
const mapped = arrayItem;
|
|
37
|
-
if (type === "all" && Object.is(keyed, value) || type === "unique" && !keys.has(keyed)) {
|
|
38
|
-
keys.add(keyed);
|
|
39
|
-
result.matched.push(mapped);
|
|
40
|
-
if (result.matched.length >= limit) return result;
|
|
41
|
-
} else result.notMatched.push(arrayItem);
|
|
42
|
-
}
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
function findSimpleValue(array, value, findIndex, reversed) {
|
|
46
|
-
if (findIndex) return reversed ? array.lastIndexOf(value) : array.indexOf(value);
|
|
47
|
-
return reversed ? array.findLast((item) => Object.is(item, value)) : array.find((item) => Object.is(item, value));
|
|
48
|
-
}
|
|
49
|
-
function findSimpleValues(parameters) {
|
|
50
|
-
const { array, arrayLength, callback, flat, limit, map, result, value } = parameters;
|
|
51
|
-
const { after, before } = map ?? {};
|
|
52
|
-
const handler = callback ?? ((item) => Object.is(item, value));
|
|
53
|
-
for (let arrayIndex = 0; arrayIndex < arrayLength; arrayIndex += 1) {
|
|
54
|
-
const arrayItem = array[arrayIndex];
|
|
55
|
-
let mapped = before == null ? arrayItem : before(arrayItem, arrayIndex, array);
|
|
56
|
-
if (!flat || after != null) {
|
|
57
|
-
if (handler(mapped, arrayIndex, array)) {
|
|
58
|
-
mapped = after == null ? mapped : after(arrayItem, arrayIndex, array);
|
|
59
|
-
addResult(result, mapped, flat);
|
|
60
|
-
if (result.matched.length >= limit) return result;
|
|
61
|
-
} else result.notMatched.push(arrayItem);
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const flatItems = Array.isArray(mapped) ? mapped : [mapped];
|
|
65
|
-
const flatLength = flatItems.length;
|
|
66
|
-
for (let flatIndex = 0; flatIndex < flatLength; flatIndex += 1) {
|
|
67
|
-
const flatItem = flatItems[flatIndex];
|
|
68
|
-
if (handler(flatItem, arrayIndex, array)) result.matched.push(flatItem);
|
|
69
|
-
else result.notMatched.push(flatItem);
|
|
70
|
-
}
|
|
1
|
+
// src/internal/array/find.ts
|
|
2
|
+
function findComplexValues(array, length, parameters, callback) {
|
|
3
|
+
let result;
|
|
4
|
+
for (let index = 0; index < length; index += 1) {
|
|
5
|
+
const item = array[parameters.reverse ? length - 1 - index : index];
|
|
6
|
+
if (!callback(item, index, array)) continue;
|
|
7
|
+
result ??= { values: [] };
|
|
8
|
+
result.values.push(parameters.indiced ? index : item);
|
|
9
|
+
if (parameters.limit == null || result.values.length === parameters.limit) return result;
|
|
71
10
|
}
|
|
72
11
|
return result;
|
|
73
12
|
}
|
|
74
|
-
function
|
|
75
|
-
|
|
76
|
-
if (!Array.isArray(array) || array.length === 0) return findIndex ? -1 : void 0;
|
|
77
|
-
const { bool, key, value } = createFindParameters(parameters);
|
|
78
|
-
const callbacks = getArrayCallbacks(bool, key);
|
|
79
|
-
if (callbacks?.bool == null && callbacks?.keyed == null) return findSimpleValue(array, value, findIndex, reversed);
|
|
80
|
-
if (callbacks.bool != null) {
|
|
81
|
-
const index = reversed ? array.findLastIndex(callbacks.bool) : array.findIndex(callbacks.bool);
|
|
82
|
-
return findIndex ? index : array[index];
|
|
83
|
-
}
|
|
84
|
-
return findValueInArray(array, callbacks.keyed, value, findIndex, reversed);
|
|
13
|
+
function findBareValue(array, reverse) {
|
|
14
|
+
return { values: [array[reverse ? array.length - 1 : 0]] };
|
|
85
15
|
}
|
|
86
|
-
function
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (Object.is(callback?.(item, index, array), value)) return findIndex ? index : item;
|
|
91
|
-
}
|
|
92
|
-
return findIndex ? -1 : void 0;
|
|
16
|
+
function findSimpleValue(array, first, indiced, reverse) {
|
|
17
|
+
const method = reverse ? "findLastIndex" : "findIndex";
|
|
18
|
+
const index = typeof first === "function" ? array[method](first) : array[method]((item) => Object.is(item, first));
|
|
19
|
+
return index === -1 ? void 0 : { values: [indiced ? index : array[index]] };
|
|
93
20
|
}
|
|
94
|
-
function
|
|
95
|
-
|
|
96
|
-
matched: [],
|
|
97
|
-
notMatched: []
|
|
98
|
-
};
|
|
99
|
-
if (!Array.isArray(array)) return result;
|
|
21
|
+
function findValue(array, parameters) {
|
|
22
|
+
if (!Array.isArray(array)) return;
|
|
100
23
|
const arrayLength = array.length;
|
|
101
|
-
if (arrayLength === 0) return
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
24
|
+
if (arrayLength === 0) return;
|
|
25
|
+
const inputLength = parameters.input.length;
|
|
26
|
+
if (inputLength === 0 && parameters.bare) return findBareValue(array, parameters.reverse ?? false);
|
|
27
|
+
const [first, second] = parameters.input;
|
|
28
|
+
if (inputLength === 1 && !parameters.limit) return findSimpleValue(array, first, parameters.indiced ?? false, parameters.reverse ?? false);
|
|
29
|
+
const callback = inputLength === 1 && typeof first === "function" ? first : getCallback(first, second);
|
|
30
|
+
return callback == null ? void 0 : findComplexValues(array, arrayLength, parameters, callback);
|
|
31
|
+
}
|
|
32
|
+
function getCallback(first, second) {
|
|
33
|
+
switch (true) {
|
|
34
|
+
case typeof first === "function": return (item, index, array) => Object.is(first(item, index, array), second);
|
|
35
|
+
case typeof first === "number" || typeof first === "string": return (item) => Object.is(item[first], second);
|
|
36
|
+
default: return;
|
|
107
37
|
}
|
|
108
|
-
const limit = options?.limit ?? Number.POSITIVE_INFINITY;
|
|
109
|
-
const flat = options?.map?.flat ?? false;
|
|
110
|
-
const mapCallback = getArrayCallback(options?.map?.callback);
|
|
111
|
-
const mapReverse = options?.map?.reverse ?? false;
|
|
112
|
-
let map;
|
|
113
|
-
if (mapCallback != null) map = {
|
|
114
|
-
before: mapReverse ? mapCallback : void 0,
|
|
115
|
-
after: mapReverse ? void 0 : mapCallback
|
|
116
|
-
};
|
|
117
|
-
const simple = callbacks?.bool != null || type === "all" && key == null;
|
|
118
|
-
const findParameters = {
|
|
119
|
-
array,
|
|
120
|
-
arrayLength,
|
|
121
|
-
flat,
|
|
122
|
-
limit,
|
|
123
|
-
map,
|
|
124
|
-
result,
|
|
125
|
-
type,
|
|
126
|
-
value,
|
|
127
|
-
callback: simple ? callbacks?.bool : callbacks?.keyed
|
|
128
|
-
};
|
|
129
|
-
return simple ? findSimpleValues(findParameters) : findComplexValues(findParameters);
|
|
130
38
|
}
|
|
131
|
-
|
|
132
|
-
export { createFindParameters, findAbsoluteValueOrDefault, findValue, findValues };
|
|
39
|
+
export { findValue };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { NumericalKeys, PlainObject } from "../../models/index.mjs";
|
|
2
|
-
//#region src/internal/array/get.d.ts
|
|
3
2
|
/**
|
|
4
3
|
* Get an array from an object, where only values with numerical keys will be included
|
|
5
4
|
*
|
|
@@ -75,5 +74,4 @@ export declare function getArray<Item>(value: Item[]): Item[];
|
|
|
75
74
|
* getArray(123); // => [123]
|
|
76
75
|
* ```
|
|
77
76
|
*/
|
|
78
|
-
export declare function getArray<Value>(value: Value): Value[];
|
|
79
|
-
//#endregion
|
|
77
|
+
export declare function getArray<Value>(value: Value): Value[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isNonPlainObject } from "../is.mjs";
|
|
2
|
-
|
|
2
|
+
// src/internal/array/get.ts
|
|
3
3
|
function getArray(value, indiced) {
|
|
4
4
|
if (Array.isArray(value)) return value;
|
|
5
5
|
if (value instanceof Map) return [...value.entries()];
|
|
@@ -17,5 +17,4 @@ function getArray(value, indiced) {
|
|
|
17
17
|
}
|
|
18
18
|
return array;
|
|
19
19
|
}
|
|
20
|
-
//#endregion
|
|
21
20
|
export { getArray };
|
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
import { Key } from "../../models/index.mjs";
|
|
2
|
-
|
|
3
|
-
export declare function groupValues(array: unknown[], key: unknown, value: unknown, arrays: boolean): Record<Key, unknown>;
|
|
4
|
-
//#endregion
|
|
2
|
+
export declare function groupValues(array: unknown[], key: unknown, value: unknown, arrays: boolean): Record<Key, unknown>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getArrayCallbacks } from "./callbacks.mjs";
|
|
2
|
-
|
|
2
|
+
// src/internal/array/group.ts
|
|
3
3
|
function groupValues(array, key, value, arrays) {
|
|
4
4
|
if (!Array.isArray(array) || array.length === 0) return {};
|
|
5
5
|
const { length } = array;
|
|
@@ -17,5 +17,4 @@ function groupValues(array, key, value, arrays) {
|
|
|
17
17
|
}
|
|
18
18
|
return record;
|
|
19
19
|
}
|
|
20
|
-
//#endregion
|
|
21
20
|
export { groupValues };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { PlainObject } from "../../models/index.mjs";
|
|
2
|
-
//#region src/internal/array/index-of.d.ts
|
|
3
2
|
/**
|
|
4
3
|
* Get the index of the first matching item by callback
|
|
5
4
|
*
|
|
@@ -140,5 +139,4 @@ export declare function lastIndexOf<Item>(array: Item[], filter: (item: Item, in
|
|
|
140
139
|
export declare function lastIndexOf<Item>(array: Item[], item: Item): number;
|
|
141
140
|
export declare namespace indexOf {
|
|
142
141
|
export var last: typeof lastIndexOf;
|
|
143
|
-
}
|
|
144
|
-
//#endregion
|
|
142
|
+
}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { ARRAY_FIND_VALUE_INDEX } from "../../models/array/array.find.model.mjs";
|
|
2
1
|
import { findValue } from "./find.mjs";
|
|
3
|
-
|
|
2
|
+
// src/internal/array/index-of.ts
|
|
4
3
|
function indexOf(array, ...parameters) {
|
|
5
|
-
return findValue(
|
|
4
|
+
return findValue(array, {
|
|
5
|
+
indiced: true,
|
|
6
|
+
input: parameters
|
|
7
|
+
})?.values[0] ?? -1;
|
|
6
8
|
}
|
|
7
9
|
function lastIndexOf(array, ...parameters) {
|
|
8
|
-
return findValue(
|
|
10
|
+
return findValue(array, {
|
|
11
|
+
indiced: true,
|
|
12
|
+
input: parameters,
|
|
13
|
+
reverse: true
|
|
14
|
+
})?.values[0] ?? -1;
|
|
9
15
|
}
|
|
10
16
|
indexOf.last = lastIndexOf;
|
|
11
|
-
//#endregion
|
|
12
17
|
export { indexOf, lastIndexOf };
|
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
import { ArrayInsertType } from "../../models/array/array.misc.model.mjs";
|
|
2
|
-
|
|
3
|
-
export declare function insertValues(type: ArrayInsertType, array: unknown, items: unknown, start: unknown, deleteCount: number): unknown;
|
|
4
|
-
//#endregion
|
|
2
|
+
export declare function insertValues(type: ArrayInsertType, array: unknown, items: unknown, start: unknown, deleteCount: number): unknown;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../../models/array/array.misc.model.mjs";
|
|
2
|
-
import { chunk } from "./chunk.mjs";
|
|
3
2
|
import { max, min } from "../math/aggregate.mjs";
|
|
4
|
-
|
|
3
|
+
import { chunk } from "./chunk.mjs";
|
|
4
|
+
// src/internal/array/insert.ts
|
|
5
5
|
function insertChunkedValues(type, array, items, start, deleteCount) {
|
|
6
6
|
const actualDeleteCount = max([deleteCount, 0]);
|
|
7
7
|
const actualStart = min([max([0, start]), array.length]);
|
|
@@ -23,5 +23,4 @@ function insertValues(type, array, items, start, deleteCount) {
|
|
|
23
23
|
if (!Array.isArray(array) || typeof start !== "number" || !Array.isArray(items) || items.length === 0) return spliceArray ? [] : 0;
|
|
24
24
|
return insertChunkedValues(type, array, items, start, spliceArray ? deleteCount : 0);
|
|
25
25
|
}
|
|
26
|
-
//#endregion
|
|
27
26
|
export { insertValues };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { PlainObject } from "../../models/index.mjs";
|
|
2
1
|
import { ArrayComparison } from "../../models/array/array.misc.model.mjs";
|
|
3
|
-
|
|
2
|
+
import { PlainObject } from "../../models/index.mjs";
|
|
4
3
|
/**
|
|
5
4
|
* Is the needle array at the end of the haystack array?
|
|
6
5
|
*
|
|
@@ -245,5 +244,4 @@ export declare function startsWithArray<Item extends PlainObject>(haystack: Item
|
|
|
245
244
|
* startsWithArray([1, 2, 3], [1, 2]); // => true
|
|
246
245
|
* ```
|
|
247
246
|
*/
|
|
248
|
-
export declare function startsWithArray<Item>(haystack: Item[], needle: Item[]): boolean;
|
|
249
|
-
//#endregion
|
|
247
|
+
export declare function startsWithArray<Item>(haystack: Item[], needle: Item[]): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getArrayCallback } from "./callbacks.mjs";
|
|
2
1
|
import { ARRAY_MATCH_COMPARISON_INSIDE, ARRAY_MATCH_COMPARISON_SAME, ARRAY_MATCH_COMPARISON_START, arrayMatchEndings, arrayMatchInvalid, arrayMatchOutside, arrayMatchOutsides, arrayMatchStarts } from "../../models/array/array.match.model.mjs";
|
|
3
|
-
|
|
2
|
+
import { getArrayCallback } from "./callbacks.mjs";
|
|
3
|
+
// src/internal/array/match.ts
|
|
4
4
|
function endsWithArray(haystack, needle, key) {
|
|
5
5
|
return arrayMatchEndings.has(getPosition(haystack, needle, key)[1]);
|
|
6
6
|
}
|
|
@@ -48,5 +48,4 @@ function indexOfArray(haystack, needle, key) {
|
|
|
48
48
|
function startsWithArray(haystack, needle, key) {
|
|
49
49
|
return arrayMatchStarts.has(getPosition(haystack, needle, key)[1]);
|
|
50
50
|
}
|
|
51
|
-
//#endregion
|
|
52
51
|
export { endsWithArray, getArrayComparison, includesArray, indexOfArray, startsWithArray };
|
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
import { ArrayOverlapItem, ArrayOverlapResult } from "../../models/array/array.misc.model.mjs";
|
|
2
|
-
|
|
3
|
-
export declare function arraysOverlap(first: ArrayOverlapItem, second: ArrayOverlapItem): ArrayOverlapResult;
|
|
4
|
-
//#endregion
|
|
2
|
+
export declare function arraysOverlap(first: ArrayOverlapItem, second: ArrayOverlapItem): ArrayOverlapResult;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/array/overlap.ts
|
|
2
2
|
function arraysOverlap(first, second) {
|
|
3
3
|
const firstArray = first.index < second.index ? first.array : second.array;
|
|
4
4
|
const secondArray = first.index < second.index ? second.array : first.array;
|
|
@@ -17,5 +17,4 @@ function arraysOverlap(first, second) {
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
//#endregion
|
|
21
20
|
export { arraysOverlap };
|
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
import { ArrayCompareSetsType } from "../../models/array/array.misc.model.mjs";
|
|
2
|
-
|
|
3
|
-
export declare function compareSets(type: ArrayCompareSetsType, first: unknown[], second: unknown[], key?: unknown): unknown[];
|
|
4
|
-
//#endregion
|
|
2
|
+
export declare function compareSets(type: ArrayCompareSetsType, first: unknown[], second: unknown[], key?: unknown): unknown[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getArrayCallback } from "./callbacks.mjs";
|
|
2
1
|
import { ARRAY_SETS_COMPARE_DIFFERENCE, ARRAY_SETS_COMPARE_INTERSECTION, ARRAY_SETS_COMPARE_UNION } from "../../models/array/array.misc.model.mjs";
|
|
3
|
-
|
|
2
|
+
import { getArrayCallback } from "./callbacks.mjs";
|
|
3
|
+
// src/internal/array/sets.ts
|
|
4
4
|
function compareSets(type, first, second, key) {
|
|
5
5
|
if (!Array.isArray(first)) return [];
|
|
6
6
|
const isDifference = type === ARRAY_SETS_COMPARE_DIFFERENCE;
|
|
@@ -24,13 +24,12 @@ function getComparison(first, second, isIntersection, isUnion, key) {
|
|
|
24
24
|
}
|
|
25
25
|
const source = isUnion ? second : first;
|
|
26
26
|
length = source.length;
|
|
27
|
-
const
|
|
27
|
+
const compared = isUnion ? first.slice() : [];
|
|
28
28
|
for (let index = 0; index < length; index += 1) {
|
|
29
29
|
const item = source[index];
|
|
30
30
|
const value = callback?.(item, index, source) ?? item;
|
|
31
|
-
if (isIntersection ? set.has(value) : !set.has(value))
|
|
31
|
+
if (isIntersection ? set.has(value) : !set.has(value)) compared.push(item);
|
|
32
32
|
}
|
|
33
|
-
return
|
|
33
|
+
return compared;
|
|
34
34
|
}
|
|
35
|
-
//#endregion
|
|
36
35
|
export { compareSets };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/internal/array/shuffle.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Shuffle items in array
|
|
4
3
|
*
|
|
@@ -10,5 +9,4 @@
|
|
|
10
9
|
* shuffle([1, 2, 3]); // => [3, 1, 2] (maybe? it's random, you know)
|
|
11
10
|
* ```
|
|
12
11
|
*/
|
|
13
|
-
export declare function shuffle<Item>(array: Item[]): Item[];
|
|
14
|
-
//#endregion
|
|
12
|
+
export declare function shuffle<Item>(array: Item[]): Item[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getRandomInteger } from "../random.mjs";
|
|
2
|
-
|
|
2
|
+
// src/internal/array/shuffle.ts
|
|
3
3
|
/**
|
|
4
4
|
* Shuffle items in array
|
|
5
5
|
*
|
|
@@ -22,5 +22,4 @@ function shuffle(array) {
|
|
|
22
22
|
}
|
|
23
23
|
return shuffled;
|
|
24
24
|
}
|
|
25
|
-
//#endregion
|
|
26
25
|
export { shuffle };
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function updateInArray(array: unknown[], items: unknown[], key: unknown, replace: boolean): unknown[];
|
|
3
|
-
//#endregion
|
|
1
|
+
export declare function updateInArray(array: unknown[], items: unknown[], key: unknown, replace: boolean): unknown[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getArrayCallback } from "./callbacks.mjs";
|
|
2
|
-
|
|
2
|
+
// src/internal/array/update.ts
|
|
3
3
|
function updateInArray(array, items, key, replace) {
|
|
4
4
|
if (!Array.isArray(array)) return [];
|
|
5
5
|
const itemsIsArray = Array.isArray(items);
|
|
@@ -20,5 +20,4 @@ function updateInArray(array, items, key, replace) {
|
|
|
20
20
|
}
|
|
21
21
|
return array;
|
|
22
22
|
}
|
|
23
|
-
//#endregion
|
|
24
23
|
export { updateInArray };
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
//#region src/internal/defaults.d.ts
|
|
2
1
|
export declare function getBooleanOrDefault(value: unknown, defaultValue: boolean): boolean;
|
|
3
|
-
export declare function getNumberOrDefault(value: unknown, defaultValue: number, minimum?: number): number;
|
|
4
|
-
//#endregion
|
|
2
|
+
export declare function getNumberOrDefault(value: unknown, defaultValue: number, minimum?: number): number;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
// src/internal/defaults.ts
|
|
2
2
|
function getBooleanOrDefault(value, defaultValue) {
|
|
3
3
|
return typeof value === "boolean" ? value : defaultValue;
|
|
4
4
|
}
|
|
5
5
|
function getNumberOrDefault(value, defaultValue, minimum) {
|
|
6
6
|
return typeof value === "number" && !Number.isNaN(value) && value >= (minimum ?? 0) ? value : defaultValue;
|
|
7
7
|
}
|
|
8
|
-
//#endregion
|
|
9
8
|
export { getBooleanOrDefault, getNumberOrDefault };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Constructor, NestedKeys, NestedValue, PlainObject } from "../../models/index.mjs";
|
|
2
1
|
import { AssertNestedPick, Asserter } from "../../models/function/assert.model.mjs";
|
|
3
|
-
|
|
2
|
+
import { Constructor, NestedKeys, NestedValue, PlainObject } from "../../models/index.mjs";
|
|
4
3
|
/**
|
|
5
4
|
* Asserts that a condition is true, throwing an error if it is not
|
|
6
5
|
*
|
|
@@ -71,5 +70,4 @@ export declare namespace assert {
|
|
|
71
70
|
export var is: typeof assertIs;
|
|
72
71
|
export var property: typeof assertProperty;
|
|
73
72
|
}
|
|
74
|
-
//#endregion
|
|
75
73
|
export type { Asserter };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../../models/function/assert.model.mjs";
|
|
2
2
|
import { hasValueResult } from "../value/has.mjs";
|
|
3
|
-
|
|
3
|
+
// src/internal/function/assert.ts
|
|
4
4
|
/**
|
|
5
5
|
* Asserts that a condition is true, throwing an error if it is not
|
|
6
6
|
*
|
|
@@ -90,5 +90,4 @@ assert.defined = assertDefined;
|
|
|
90
90
|
assert.instanceOf = assertInstanceOf;
|
|
91
91
|
assert.is = assertIs;
|
|
92
92
|
assert.property = assertProperty;
|
|
93
|
-
//#endregion
|
|
94
93
|
export { assert, assertCondition, assertDefined, assertInstanceOf, assertIs, assertProperty };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { GenericAsyncCallback, GenericCallback } from "../../models/index.mjs";
|
|
2
1
|
import { AsyncLimiter, Limiter, LimiterType } from "../../models/function/limiter.model.mjs";
|
|
3
|
-
|
|
2
|
+
import { GenericAsyncCallback, GenericCallback } from "../../models/index.mjs";
|
|
4
3
|
export declare function getAsyncLimiter<Callback extends GenericAsyncCallback | GenericCallback>(type: LimiterType, callback: Callback, time?: number): AsyncLimiter<Callback>;
|
|
5
|
-
export declare function getLimiter<Callback extends GenericCallback>(type: LimiterType, callback: Callback, time?: number): Limiter<Callback>;
|
|
6
|
-
//#endregion
|
|
4
|
+
export declare function getLimiter<Callback extends GenericCallback>(type: LimiterType, callback: Callback, time?: number): Limiter<Callback>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LIMITER_NAME_ASYNC, LIMITER_NAME_SYNC, LIMITER_PROPERTY, LIMITER_SYMBOL, LIMITER_THROTTLE, clearTimer, startTimer } from "../../models/function/limiter.model.mjs";
|
|
1
|
+
import { LIMITER_NAME_ASYNC, LIMITER_NAME_SYNC, LIMITER_SYMBOL, LIMITER_THROTTLE, clearTimer, startTimer } from "../../models/function/limiter.model.mjs";
|
|
3
2
|
import { getNumberOrDefault } from "../defaults.mjs";
|
|
4
|
-
|
|
3
|
+
import { asyncAttempt } from "../result/attempt.mjs";
|
|
4
|
+
// src/internal/function/limit.ts
|
|
5
5
|
function AsyncLimiter(type, callback, time) {
|
|
6
6
|
this[LIMITER_SYMBOL] = {
|
|
7
7
|
callback,
|
|
8
8
|
type,
|
|
9
9
|
interval: getNumberOrDefault(time, 0),
|
|
10
|
+
name: LIMITER_NAME_ASYNC,
|
|
10
11
|
parameters: [],
|
|
11
12
|
throttle: type === LIMITER_THROTTLE
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
|
-
AsyncLimiter.prototype[LIMITER_PROPERTY] = LIMITER_NAME_ASYNC;
|
|
15
15
|
AsyncLimiter.prototype.cancel = cancelAsyncLimiter;
|
|
16
16
|
AsyncLimiter.prototype.run = runAsyncLimiter;
|
|
17
17
|
function Limiter(type, callback, time) {
|
|
@@ -19,11 +19,11 @@ function Limiter(type, callback, time) {
|
|
|
19
19
|
callback,
|
|
20
20
|
type,
|
|
21
21
|
interval: getNumberOrDefault(time, 0),
|
|
22
|
+
name: LIMITER_NAME_SYNC,
|
|
22
23
|
parameters: [],
|
|
23
24
|
throttle: type === LIMITER_THROTTLE
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
Limiter.prototype[LIMITER_PROPERTY] = LIMITER_NAME_SYNC;
|
|
27
27
|
Limiter.prototype.cancel = cancelLimiter;
|
|
28
28
|
Limiter.prototype.run = runLimiter;
|
|
29
29
|
function cancelAsyncLimiter() {
|
|
@@ -50,13 +50,13 @@ async function handleAsyncLimiter(state, item) {
|
|
|
50
50
|
if (state.interval === 0 || now - state.start >= state.interval - 5) {
|
|
51
51
|
state.start = state.throttle ? now : void 0;
|
|
52
52
|
item.running = true;
|
|
53
|
-
const
|
|
53
|
+
const attempted = await asyncAttempt(async () => {
|
|
54
54
|
let value = state.callback(...item.parameters);
|
|
55
55
|
if (value instanceof Promise) value = await value;
|
|
56
56
|
return value;
|
|
57
57
|
});
|
|
58
|
-
if (
|
|
59
|
-
else item.reject(
|
|
58
|
+
if (attempted.ok) item.resolve(attempted.value);
|
|
59
|
+
else item.reject(attempted.error);
|
|
60
60
|
item.running = false;
|
|
61
61
|
} else state.timer = startTimer(() => handleAsyncLimiter(state, item));
|
|
62
62
|
}
|
|
@@ -91,5 +91,4 @@ function runLimiter(...parameters) {
|
|
|
91
91
|
if (state.throttle) handleLimiter(state);
|
|
92
92
|
else state.timer = startTimer(() => handleLimiter(state));
|
|
93
93
|
}
|
|
94
|
-
//#endregion
|
|
95
94
|
export { getAsyncLimiter, getLimiter };
|