@oscarpalmer/atoms 0.186.2 → 0.187.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/filter.d.mts +4 -4
- package/dist/array/find.d.mts +4 -4
- package/dist/array/first.d.mts +4 -4
- package/dist/array/get.d.mts +27 -1
- package/dist/array/get.mjs +5 -3
- package/dist/array/group-by.d.mts +6 -6
- package/dist/array/last.d.mts +4 -4
- package/dist/array/match.d.mts +7 -6
- package/dist/array/move.d.mts +7 -7
- package/dist/array/move.mjs +1 -1
- package/dist/array/select.d.mts +1 -0
- package/dist/array/slice.d.mts +3 -3
- package/dist/array/sort.d.mts +10 -7
- package/dist/array/sort.mjs +4 -3
- package/dist/array/swap.d.mts +1 -1
- package/dist/array/swap.mjs +1 -1
- package/dist/array/to-map.d.mts +32 -32
- package/dist/array/to-record.d.mts +6 -6
- package/dist/array/to-set.d.mts +6 -6
- package/dist/beacon.d.mts +6 -0
- package/dist/beacon.mjs +3 -0
- package/dist/color/index.d.mts +6 -2
- package/dist/color/index.mjs +6 -2
- package/dist/color/instance.d.mts +78 -14
- package/dist/color/instance.mjs +78 -14
- package/dist/color/misc/get.d.mts +39 -11
- package/dist/color/misc/get.mjs +39 -11
- package/dist/color/misc/is.d.mts +26 -11
- package/dist/color/misc/is.mjs +26 -11
- package/dist/color/misc/state.mjs +1 -1
- package/dist/color/models.d.mts +7 -4
- package/dist/color/space/hex.d.mts +15 -6
- package/dist/color/space/hex.mjs +15 -6
- package/dist/color/space/hsl.d.mts +10 -4
- package/dist/color/space/hsl.mjs +10 -4
- package/dist/color/space/rgb.d.mts +21 -12
- package/dist/color/space/rgb.mjs +21 -12
- package/dist/function/assert.d.mts +20 -14
- package/dist/function/assert.mjs +19 -13
- package/dist/function/limit.d.mts +8 -6
- package/dist/function/limit.mjs +8 -6
- package/dist/function/memoize.d.mts +15 -4
- package/dist/function/memoize.mjs +18 -4
- package/dist/function/once.d.mts +5 -3
- package/dist/function/once.mjs +5 -3
- package/dist/function/retry.d.mts +5 -2
- package/dist/function/retry.mjs +3 -1
- package/dist/function/work.d.mts +146 -98
- package/dist/{kalas.d.mts → herald.d.mts} +17 -8
- package/dist/{kalas.mjs → herald.mjs} +22 -13
- package/dist/index.d.mts +1464 -708
- package/dist/index.mjs +677 -324
- package/dist/internal/array/index-of.d.mts +4 -4
- package/dist/internal/array/insert.mjs +1 -1
- package/dist/internal/array/shuffle.d.mts +1 -0
- package/dist/internal/array/shuffle.mjs +2 -1
- package/dist/internal/is.d.mts +26 -8
- package/dist/internal/is.mjs +26 -8
- package/dist/internal/math/aggregate.d.mts +9 -9
- package/dist/internal/number.d.mts +13 -2
- package/dist/internal/number.mjs +13 -2
- package/dist/internal/random.d.mts +4 -2
- package/dist/internal/random.mjs +7 -5
- package/dist/internal/result.d.mts +17 -11
- package/dist/internal/result.mjs +10 -14
- package/dist/internal/string.d.mts +16 -1
- package/dist/internal/string.mjs +24 -1
- package/dist/internal/value/compare.d.mts +5 -2
- package/dist/internal/value/compare.mjs +5 -2
- package/dist/internal/value/equal.d.mts +12 -3
- package/dist/internal/value/equal.mjs +7 -4
- package/dist/internal/value/get.d.mts +17 -17
- package/dist/internal/value/has.d.mts +55 -11
- package/dist/internal/value/set.d.mts +24 -0
- package/dist/is.d.mts +12 -0
- package/dist/is.mjs +16 -1
- package/dist/logger.d.mts +7 -6
- package/dist/logger.mjs +6 -5
- package/dist/math.d.mts +36 -18
- package/dist/math.mjs +6 -3
- package/dist/models.d.mts +3 -3
- package/dist/promise/delay.d.mts +2 -0
- package/dist/promise/helpers.d.mts +6 -4
- package/dist/promise/helpers.mjs +6 -4
- package/dist/promise/index.d.mts +49 -38
- package/dist/promise/misc.d.mts +10 -7
- package/dist/promise/misc.mjs +4 -3
- package/dist/promise/models.d.mts +18 -19
- package/dist/promise/models.mjs +4 -3
- package/dist/promise/timed.d.mts +8 -6
- package/dist/query.d.mts +2 -0
- package/dist/query.mjs +2 -0
- package/dist/queue.d.mts +15 -4
- package/dist/queue.mjs +10 -3
- package/dist/random.d.mts +9 -2
- package/dist/random.mjs +7 -2
- package/dist/result/index.d.mts +14 -8
- package/dist/result/match.d.mts +18 -10
- package/dist/result/misc.d.mts +14 -7
- package/dist/result/misc.mjs +4 -2
- package/dist/result/models.d.mts +2 -0
- package/dist/result/work/flow.d.mts +86 -62
- package/dist/result/work/pipe.d.mts +55 -33
- package/dist/sized/map.d.mts +19 -16
- package/dist/sized/map.mjs +4 -4
- package/dist/sized/set.d.mts +20 -16
- package/dist/sized/set.mjs +8 -7
- package/dist/string/case.d.mts +8 -0
- package/dist/string/case.mjs +8 -0
- package/dist/string/fuzzy.d.mts +19 -5
- package/dist/string/fuzzy.mjs +7 -0
- package/dist/string/index.d.mts +17 -2
- package/dist/string/index.mjs +7 -9
- package/dist/string/match.d.mts +3 -0
- package/dist/string/match.mjs +3 -0
- package/dist/string/normalize.d.mts +6 -2
- package/dist/string/normalize.mjs +5 -2
- package/dist/string/template.d.mts +38 -9
- package/dist/string/template.mjs +19 -19
- package/dist/value/clone.d.mts +25 -4
- package/dist/value/clone.mjs +36 -22
- package/dist/value/collection.d.mts +9 -6
- package/dist/value/collection.mjs +3 -2
- package/dist/value/diff.d.mts +3 -1
- package/dist/value/diff.mjs +1 -0
- package/dist/value/freeze.d.mts +118 -9
- package/dist/value/freeze.mjs +56 -14
- package/dist/value/index.d.mts +1 -2
- package/dist/value/index.mjs +1 -2
- package/dist/value/merge.d.mts +11 -5
- package/dist/value/merge.mjs +2 -2
- package/dist/value/omit.d.mts +1 -0
- package/dist/value/omit.mjs +1 -0
- package/dist/value/pick.d.mts +1 -0
- package/dist/value/pick.mjs +1 -0
- package/dist/value/shake.d.mts +1 -0
- package/dist/value/shake.mjs +1 -0
- package/dist/value/smush.d.mts +1 -0
- package/dist/value/smush.mjs +1 -0
- package/dist/value/transform.d.mts +7 -3
- package/dist/value/unsmush.d.mts +1 -0
- package/dist/value/unsmush.mjs +1 -0
- package/package.json +11 -7
- package/src/array/filter.ts +4 -4
- package/src/array/find.ts +4 -4
- package/src/array/first.ts +4 -4
- package/src/array/get.ts +40 -5
- package/src/array/group-by.ts +6 -6
- package/src/array/last.ts +4 -4
- package/src/array/match.ts +7 -6
- package/src/array/move.ts +7 -7
- package/src/array/select.ts +1 -0
- package/src/array/slice.ts +3 -3
- package/src/array/sort.ts +15 -10
- package/src/array/swap.ts +1 -1
- package/src/array/to-map.ts +32 -32
- package/src/array/to-record.ts +6 -6
- package/src/array/to-set.ts +6 -6
- package/src/beacon.ts +6 -0
- package/src/color/index.ts +6 -2
- package/src/color/instance.ts +78 -14
- package/src/color/misc/get.ts +39 -11
- package/src/color/misc/is.ts +26 -11
- package/src/color/misc/state.ts +1 -1
- package/src/color/models.ts +7 -4
- package/src/color/space/hex.ts +15 -6
- package/src/color/space/hsl.ts +10 -4
- package/src/color/space/rgb.ts +21 -12
- package/src/function/assert.ts +20 -14
- package/src/function/limit.ts +8 -6
- package/src/function/memoize.ts +24 -5
- package/src/function/once.ts +5 -3
- package/src/function/retry.ts +7 -3
- package/src/function/work.ts +146 -98
- package/src/{kalas.ts → herald.ts} +23 -14
- package/src/index.ts +3 -2
- package/src/internal/array/index-of.ts +4 -4
- package/src/internal/array/insert.ts +1 -1
- package/src/internal/array/shuffle.ts +2 -1
- package/src/internal/is.ts +26 -8
- package/src/internal/math/aggregate.ts +9 -9
- package/src/internal/number.ts +13 -2
- package/src/internal/random.ts +10 -4
- package/src/internal/result.ts +30 -29
- package/src/internal/string.ts +28 -0
- package/src/internal/value/compare.ts +5 -2
- package/src/internal/value/equal.ts +13 -4
- package/src/internal/value/get.ts +17 -17
- package/src/internal/value/has.ts +54 -11
- package/src/internal/value/set.ts +24 -0
- package/src/is.ts +15 -1
- package/src/logger.ts +8 -7
- package/src/math.ts +36 -18
- package/src/models.ts +3 -3
- package/src/promise/delay.ts +2 -0
- package/src/promise/helpers.ts +6 -4
- package/src/promise/index.ts +49 -38
- package/src/promise/misc.ts +10 -7
- package/src/promise/models.ts +18 -19
- package/src/promise/timed.ts +8 -6
- package/src/query.ts +2 -0
- package/src/queue.ts +15 -4
- package/src/random.ts +8 -1
- package/src/result/index.ts +14 -8
- package/src/result/match.ts +18 -10
- package/src/result/misc.ts +17 -9
- package/src/result/models.ts +2 -0
- package/src/result/work/flow.ts +86 -62
- package/src/result/work/pipe.ts +55 -33
- package/src/sized/map.ts +20 -17
- package/src/sized/set.ts +21 -17
- package/src/string/case.ts +8 -0
- package/src/string/fuzzy.ts +19 -5
- package/src/string/index.ts +18 -15
- package/src/string/match.ts +3 -0
- package/src/string/normalize.ts +6 -2
- package/src/string/template.ts +69 -18
- package/src/value/clone.ts +51 -26
- package/src/value/collection.ts +9 -6
- package/src/value/diff.ts +3 -1
- package/src/value/freeze.ts +239 -25
- package/src/value/index.ts +0 -1
- package/src/value/merge.ts +11 -5
- package/src/value/omit.ts +1 -0
- package/src/value/pick.ts +1 -0
- package/src/value/shake.ts +1 -0
- package/src/value/smush.ts +1 -0
- package/src/value/transform.ts +7 -3
- package/src/value/unsmush.ts +1 -0
package/dist/logger.d.mts
CHANGED
|
@@ -46,16 +46,17 @@ declare class Logger {
|
|
|
46
46
|
*/
|
|
47
47
|
get warn(): typeof console.warn;
|
|
48
48
|
/**
|
|
49
|
-
* Start a
|
|
50
|
-
*
|
|
51
|
-
* @
|
|
49
|
+
* Start a timed logger with a label
|
|
50
|
+
*
|
|
51
|
+
* @param label Label for the logger
|
|
52
|
+
* @returns _Timed_ instance
|
|
52
53
|
*/
|
|
53
|
-
time(label: string):
|
|
54
|
+
time(label: string): Timed;
|
|
54
55
|
}
|
|
55
56
|
/**
|
|
56
57
|
* A named timer that can be used to log durations to the console
|
|
57
58
|
*/
|
|
58
|
-
declare class
|
|
59
|
+
declare class Timed {
|
|
59
60
|
#private;
|
|
60
61
|
/**
|
|
61
62
|
* Is the timer active? _(i.e. has it been started and not stopped, and is logging enabled?)_
|
|
@@ -75,4 +76,4 @@ declare class Time {
|
|
|
75
76
|
}
|
|
76
77
|
declare const logger: Logger;
|
|
77
78
|
//#endregion
|
|
78
|
-
export { type Logger, type
|
|
79
|
+
export { type Logger, type Timed, logger };
|
package/dist/logger.mjs
CHANGED
|
@@ -67,18 +67,19 @@ var Logger = class {
|
|
|
67
67
|
return enabled ? console.warn : noop;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
|
-
* Start a
|
|
71
|
-
*
|
|
72
|
-
* @
|
|
70
|
+
* Start a timed logger with a label
|
|
71
|
+
*
|
|
72
|
+
* @param label Label for the logger
|
|
73
|
+
* @returns _Timed_ instance
|
|
73
74
|
*/
|
|
74
75
|
time(label) {
|
|
75
|
-
return new
|
|
76
|
+
return new Timed(label);
|
|
76
77
|
}
|
|
77
78
|
};
|
|
78
79
|
/**
|
|
79
80
|
* A named timer that can be used to log durations to the console
|
|
80
81
|
*/
|
|
81
|
-
var
|
|
82
|
+
var Timed = class {
|
|
82
83
|
#logger;
|
|
83
84
|
#stopper;
|
|
84
85
|
#state;
|
package/dist/math.d.mts
CHANGED
|
@@ -4,125 +4,143 @@ import { max } from "./internal/math/aggregate.mjs";
|
|
|
4
4
|
//#region src/math.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Get the average value from a list of items
|
|
7
|
+
*
|
|
7
8
|
* @param items List of items
|
|
8
9
|
* @param callback Callback to get an item's value
|
|
9
|
-
* @returns Average value, or `NaN` if no average can be calculated
|
|
10
|
+
* @returns Average value, or `Number.NaN` if no average can be calculated
|
|
10
11
|
*/
|
|
11
12
|
declare function average<Item>(items: Item[], callback: (item: Item, index: number, array: Item[]) => number): number;
|
|
12
13
|
/**
|
|
13
14
|
* Get the average value from a list of items
|
|
15
|
+
*
|
|
14
16
|
* @param items List of items
|
|
15
17
|
* @param key Key to use for value
|
|
16
|
-
* @returns Average value, or `NaN` if no average can be calculated
|
|
18
|
+
* @returns Average value, or `Number.NaN` if no average can be calculated
|
|
17
19
|
*/
|
|
18
20
|
declare function average<Item extends PlainObject>(items: Item[], key: keyof NumericalValues<Item>): number;
|
|
19
21
|
/**
|
|
20
22
|
* Get the average value from a list of numbers
|
|
23
|
+
*
|
|
21
24
|
* @param numbers List of numbers
|
|
22
|
-
* @returns Average value, or `NaN` if no average can be calculated
|
|
25
|
+
* @returns Average value, or `Number.NaN` if no average can be calculated
|
|
23
26
|
*/
|
|
24
27
|
declare function average(numbers: number[]): number;
|
|
25
28
|
/**
|
|
26
29
|
* Round a number up
|
|
30
|
+
*
|
|
27
31
|
* @param value Number to round up
|
|
28
32
|
* @param decimals Number of decimal places to round to _(defaults to `0`)_
|
|
29
|
-
* @returns Rounded number, or `NaN` if the value if unable to be rounded
|
|
33
|
+
* @returns Rounded number, or `Number.NaN` if the value if unable to be rounded
|
|
30
34
|
*/
|
|
31
35
|
declare function ceil(value: number, decimals?: number): number;
|
|
32
36
|
/**
|
|
33
37
|
* Count the number of items in an array that match a specific value
|
|
38
|
+
*
|
|
34
39
|
* @param array Array to count for
|
|
35
40
|
* @param callback Callback to get an item's value
|
|
36
41
|
* @param value Value to match and count
|
|
37
|
-
* @returns Number of items that match the condition, or `NaN` if no count can be calculated
|
|
42
|
+
* @returns Number of items that match the condition, or `Number.NaN` if no count can be calculated
|
|
38
43
|
*/
|
|
39
44
|
declare function count<Item>(array: Item[], callback: (item: Item, index: number, array: Item[]) => unknown, value: unknown): number;
|
|
40
45
|
/**
|
|
41
46
|
* Count the number of items in an array that have a specific value
|
|
47
|
+
*
|
|
42
48
|
* @param array Array to count for
|
|
43
49
|
* @param key Key to use for value
|
|
44
50
|
* @param value Value to match and count
|
|
45
|
-
* @returns Number of items with the specified key value, or `NaN` if no count can be calculated
|
|
51
|
+
* @returns Number of items with the specified key value, or `Number.NaN` if no count can be calculated
|
|
46
52
|
*/
|
|
47
53
|
declare function count<Item extends PlainObject, ItemKey extends keyof Item>(array: Item[], key: ItemKey, value: Item[ItemKey]): number;
|
|
48
54
|
/**
|
|
49
55
|
* Count the number of items in an array
|
|
56
|
+
*
|
|
50
57
|
* @param values Array to count for
|
|
51
|
-
* @returns Number of items, or `NaN` if no count can be calculated
|
|
58
|
+
* @returns Number of items, or `Number.NaN` if no count can be calculated
|
|
52
59
|
*/
|
|
53
60
|
declare function count(values: unknown[]): number;
|
|
54
61
|
/**
|
|
55
62
|
* Round a number down
|
|
63
|
+
*
|
|
56
64
|
* @param value Number to round down
|
|
57
65
|
* @param decimals Number of decimal places to round to _(defaults to `0`)_
|
|
58
|
-
* @returns Rounded number, or `NaN` if the value if unable to be rounded
|
|
66
|
+
* @returns Rounded number, or `Number.NaN` if the value if unable to be rounded
|
|
59
67
|
*/
|
|
60
68
|
declare function floor(value: number, decimals?: number): number;
|
|
61
69
|
/**
|
|
62
70
|
* Get the median value from a list of items
|
|
71
|
+
*
|
|
63
72
|
* @param array List of items
|
|
64
73
|
* @param callback Callback to get an item's value
|
|
65
|
-
* @returns Median value, or `NaN` if no median can be calculated
|
|
74
|
+
* @returns Median value, or `Number.NaN` if no median can be calculated
|
|
66
75
|
*/
|
|
67
76
|
declare function median<Item>(array: Item[], callback: (item: Item, index: number, array: Item[]) => number): number;
|
|
68
77
|
/**
|
|
69
78
|
* Get the median value from a list of items
|
|
79
|
+
*
|
|
70
80
|
* @param array List of items
|
|
71
81
|
* @param key Key to use for value
|
|
72
|
-
* @returns Median value, or `NaN` if no median can be calculated
|
|
82
|
+
* @returns Median value, or `Number.NaN` if no median can be calculated
|
|
73
83
|
*/
|
|
74
84
|
declare function median<Item extends PlainObject>(array: Item[], key: keyof NumericalValues<Item>): number;
|
|
75
85
|
/**
|
|
76
86
|
* Get the median value from a list of numbers
|
|
87
|
+
*
|
|
77
88
|
* @param array List of numbers
|
|
78
|
-
* @returns Median value, or `NaN` if no median can be calculated
|
|
89
|
+
* @returns Median value, or `Number.NaN` if no median can be calculated
|
|
79
90
|
*/
|
|
80
91
|
declare function median(array: number[]): number;
|
|
81
92
|
/**
|
|
82
93
|
* Get the minimum value from a list of items
|
|
94
|
+
*
|
|
83
95
|
* @param items List of items
|
|
84
96
|
* @param callback Callback to get an item's value
|
|
85
|
-
* @returns Minimum value, or `NaN` if no minimum can be found
|
|
97
|
+
* @returns Minimum value, or `Number.NaN` if no minimum can be found
|
|
86
98
|
*/
|
|
87
99
|
declare function min<Item>(items: Item[], callback: (item: Item, index: number, array: Item[]) => number): number;
|
|
88
100
|
/**
|
|
89
101
|
* Get the minimum value from a list of items
|
|
102
|
+
*
|
|
90
103
|
* @param items List of items
|
|
91
104
|
* @param key Key to use for value
|
|
92
|
-
* @returns Minimum value, or `NaN` if no minimum can be found
|
|
105
|
+
* @returns Minimum value, or `Number.NaN` if no minimum can be found
|
|
93
106
|
*/
|
|
94
107
|
declare function min<Item extends PlainObject>(items: Item[], key: keyof NumericalValues<Item>): number;
|
|
95
108
|
/**
|
|
96
109
|
* Get the minimum value from a list of numbers
|
|
110
|
+
*
|
|
97
111
|
* @param values List of numbers
|
|
98
|
-
* @returns Minimum value, or `NaN` if no minimum can be found
|
|
112
|
+
* @returns Minimum value, or `Number.NaN` if no minimum can be found
|
|
99
113
|
*/
|
|
100
114
|
declare function min(values: number[]): number;
|
|
101
115
|
/**
|
|
102
116
|
* Round a number
|
|
117
|
+
*
|
|
103
118
|
* @param value Number to round
|
|
104
119
|
* @param decimals Number of decimal places to round to _(defaults to `0`)_
|
|
105
|
-
* @returns Rounded number, or `NaN` if the value if unable to be rounded
|
|
120
|
+
* @returns Rounded number, or `Number.NaN` if the value if unable to be rounded
|
|
106
121
|
*/
|
|
107
122
|
declare function round(value: number, decimals?: number): number;
|
|
108
123
|
/**
|
|
109
124
|
* Get the sum of a list of items
|
|
125
|
+
*
|
|
110
126
|
* @param items List of items
|
|
111
127
|
* @param callback Callback to get an item's value
|
|
112
|
-
* @returns Sum of the values, or `NaN` if no sum can be calculated
|
|
128
|
+
* @returns Sum of the values, or `Number.NaN` if no sum can be calculated
|
|
113
129
|
*/
|
|
114
130
|
declare function sum<Item>(items: Item[], callback: (item: Item, index: number, array: Item[]) => number): number;
|
|
115
131
|
/**
|
|
116
132
|
* Get the sum of a list of items
|
|
133
|
+
*
|
|
117
134
|
* @param items List of items
|
|
118
135
|
* @param key Key to use for value
|
|
119
|
-
* @returns Sum of the values, or `NaN` if no sum can be calculated
|
|
136
|
+
* @returns Sum of the values, or `Number.NaN` if no sum can be calculated
|
|
120
137
|
*/
|
|
121
138
|
declare function sum<Item extends PlainObject>(items: Item[], key: keyof NumericalValues<Item>): number;
|
|
122
139
|
/**
|
|
123
140
|
* Get the sum of a list of numbers
|
|
141
|
+
*
|
|
124
142
|
* @param values List of numbers
|
|
125
|
-
* @returns Sum of the numbers, or `NaN` if no sum can be calculated
|
|
143
|
+
* @returns Sum of the numbers, or `Number.NaN` if no sum can be calculated
|
|
126
144
|
*/
|
|
127
145
|
declare function sum(values: number[]): number;
|
|
128
146
|
//#endregion
|
package/dist/math.mjs
CHANGED
|
@@ -7,9 +7,10 @@ function average(array, key) {
|
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Round a number up
|
|
10
|
+
*
|
|
10
11
|
* @param value Number to round up
|
|
11
12
|
* @param decimals Number of decimal places to round to _(defaults to `0`)_
|
|
12
|
-
* @returns Rounded number, or `NaN` if the value if unable to be rounded
|
|
13
|
+
* @returns Rounded number, or `Number.NaN` if the value if unable to be rounded
|
|
13
14
|
*/
|
|
14
15
|
function ceil(value, decimals) {
|
|
15
16
|
return roundNumber(Math.ceil, value, decimals);
|
|
@@ -28,9 +29,10 @@ function count(array, key, value) {
|
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Round a number down
|
|
32
|
+
*
|
|
31
33
|
* @param value Number to round down
|
|
32
34
|
* @param decimals Number of decimal places to round to _(defaults to `0`)_
|
|
33
|
-
* @returns Rounded number, or `NaN` if the value if unable to be rounded
|
|
35
|
+
* @returns Rounded number, or `Number.NaN` if the value if unable to be rounded
|
|
34
36
|
*/
|
|
35
37
|
function floor(value, decimals) {
|
|
36
38
|
return roundNumber(Math.floor, value, decimals);
|
|
@@ -56,9 +58,10 @@ function min(array, key) {
|
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Round a number
|
|
61
|
+
*
|
|
59
62
|
* @param value Number to round
|
|
60
63
|
* @param decimals Number of decimal places to round to _(defaults to `0`)_
|
|
61
|
-
* @returns Rounded number, or `NaN` if the value if unable to be rounded
|
|
64
|
+
* @returns Rounded number, or `Number.NaN` if the value if unable to be rounded
|
|
62
65
|
*/
|
|
63
66
|
function round(value, decimals) {
|
|
64
67
|
return roundNumber(Math.round, value, decimals);
|
package/dist/models.d.mts
CHANGED
|
@@ -15,7 +15,7 @@ type AsyncCancelableCallback<Callback extends GenericAsyncCallback | GenericCall
|
|
|
15
15
|
/**
|
|
16
16
|
* For matching any `void`, `Date`, primitive, or `RegExp` values
|
|
17
17
|
*
|
|
18
|
-
* (Thanks, type-fest!)
|
|
18
|
+
* _(Thanks, type-fest!)_
|
|
19
19
|
*/
|
|
20
20
|
type BuiltIns = void | Date | Primitive | RegExp;
|
|
21
21
|
/**
|
|
@@ -70,7 +70,7 @@ type NestedPartial<Value> = { [ItemKey in keyof Value]?: Value[ItemKey] extends
|
|
|
70
70
|
type NestedValue<Value extends PlainObject, Path extends string> = _NestedValue<Value, Path>;
|
|
71
71
|
type _NestedValue<Value, Path extends string> = Path extends `${infer ItemKey}.${infer Rest}` ? ItemKey extends keyof Value ? undefined extends Value[ItemKey] ? _NestedValue<Exclude<Value[ItemKey], undefined>, Rest> | undefined : _NestedValue<Value[ItemKey], Rest> : ItemKey extends `${number}` ? Value extends readonly any[] ? _NestedValue<Value[number], Rest> : never : never : Path extends `${number}` ? Value extends readonly any[] ? Value[number] : never : Path extends keyof Value ? Value[Path] : never;
|
|
72
72
|
/**
|
|
73
|
-
* The nested (keyed) values of an object _(up to 5 levels deep)_
|
|
73
|
+
* The nested _(keyed)_ values of an object _(up to 5 levels deep)_
|
|
74
74
|
*/
|
|
75
75
|
type NestedValues<Value extends PlainObject> = { [Path in NestedKeys<Value>]: NestedValue<Value, Path> };
|
|
76
76
|
/**
|
|
@@ -150,7 +150,7 @@ type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint
|
|
|
150
150
|
* ```typescript
|
|
151
151
|
* type A = {a: string};
|
|
152
152
|
* type B = {b: number};
|
|
153
|
-
* type C = UnionToIntersection<A | B>; // {a: string} & {b: number}
|
|
153
|
+
* type C = UnionToIntersection<A | B>; // => {a: string} & {b: number}
|
|
154
154
|
* ```
|
|
155
155
|
*
|
|
156
156
|
* Thanks, type-fest!
|
package/dist/promise/delay.d.mts
CHANGED
|
@@ -3,12 +3,14 @@ import { PromiseOptions } from "./models.mjs";
|
|
|
3
3
|
//#region src/promise/delay.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Create a delayed promise that resolves after a certain amount of time, or rejects if aborted
|
|
6
|
+
*
|
|
6
7
|
* @param options Options for the delay
|
|
7
8
|
* @returns Delayed promise
|
|
8
9
|
*/
|
|
9
10
|
declare function delay(options?: PromiseOptions): Promise<void>;
|
|
10
11
|
/**
|
|
11
12
|
* Create a delayed promise that resolves after a certain amount of time
|
|
13
|
+
*
|
|
12
14
|
* @param time How long to wait for _(in milliseconds; defaults to `0`)_
|
|
13
15
|
* @returns Delayed promise
|
|
14
16
|
*/
|
|
@@ -8,15 +8,17 @@ declare function getPromisesOptions(input: unknown): RequiredKeys<PromisesOption
|
|
|
8
8
|
declare function getResultsFromPromises<Value>(promised: PromisesValue<Value>[]): Result<Value>[];
|
|
9
9
|
declare function getStrategyOrDefault(value: unknown): PromiseStrategy;
|
|
10
10
|
/**
|
|
11
|
-
* Is the value a fulfilled
|
|
11
|
+
* Is the value a fulfilled _Promise_ result?
|
|
12
|
+
*
|
|
12
13
|
* @param value Value to check
|
|
13
|
-
* @returns `true` if the value is a fulfilled
|
|
14
|
+
* @returns `true` if the value is a fulfilled _Promise_ result, `false` otherwise
|
|
14
15
|
*/
|
|
15
16
|
declare function isFulfilled<Value>(value: unknown): value is FulfilledPromise<Value>;
|
|
16
17
|
/**
|
|
17
|
-
* Is the value a rejected
|
|
18
|
+
* Is the value a rejected _Promise_ result?
|
|
19
|
+
*
|
|
18
20
|
* @param value Value to check
|
|
19
|
-
* @returns `true` if the value is a rejected
|
|
21
|
+
* @returns `true` if the value is a rejected _Promise_ result, `false` otherwise
|
|
20
22
|
*/
|
|
21
23
|
declare function isRejected(value: unknown): value is RejectedPromise;
|
|
22
24
|
//#endregion
|
package/dist/promise/helpers.mjs
CHANGED
|
@@ -33,17 +33,19 @@ function getStrategyOrDefault(value) {
|
|
|
33
33
|
return PROMISE_STRATEGY_ALL.has(value) ? value : PROMISE_STRATEGY_DEFAULT;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
* Is the value a fulfilled
|
|
36
|
+
* Is the value a fulfilled _Promise_ result?
|
|
37
|
+
*
|
|
37
38
|
* @param value Value to check
|
|
38
|
-
* @returns `true` if the value is a fulfilled
|
|
39
|
+
* @returns `true` if the value is a fulfilled _Promise_ result, `false` otherwise
|
|
39
40
|
*/
|
|
40
41
|
function isFulfilled(value) {
|
|
41
42
|
return isType(value, PROMISE_TYPE_FULFILLED);
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
|
-
* Is the value a rejected
|
|
45
|
+
* Is the value a rejected _Promise_ result?
|
|
46
|
+
*
|
|
45
47
|
* @param value Value to check
|
|
46
|
-
* @returns `true` if the value is a rejected
|
|
48
|
+
* @returns `true` if the value is a rejected _Promise_ result, `false` otherwise
|
|
47
49
|
*/
|
|
48
50
|
function isRejected(value) {
|
|
49
51
|
return isType(value, PROMISE_TYPE_REJECTED);
|
package/dist/promise/index.d.mts
CHANGED
|
@@ -3,73 +3,82 @@ import { PromiseOptions, PromisesItems, PromisesOptions, PromisesResult, Promise
|
|
|
3
3
|
|
|
4
4
|
//#region src/promise/index.d.ts
|
|
5
5
|
/**
|
|
6
|
-
* Wrap a
|
|
7
|
-
*
|
|
8
|
-
* @param
|
|
9
|
-
* @
|
|
6
|
+
* Wrap a _Promise_ with safety handlers, with optional abort capabilities and timeout
|
|
7
|
+
*
|
|
8
|
+
* @param promise _Promise_ to wrap
|
|
9
|
+
* @param options Options for the _Promise_
|
|
10
|
+
* @returns Wrapped _Promise_
|
|
10
11
|
*/
|
|
11
12
|
declare function attemptPromise<Value>(promise: Promise<Value>, options?: PromiseOptions | AbortSignal | number): Promise<Value>;
|
|
12
13
|
/**
|
|
13
|
-
* Wrap a
|
|
14
|
+
* Wrap a _Promise_-returning callback with safety handlers, with optional abort capabilities and timeout
|
|
15
|
+
*
|
|
14
16
|
* @param callback Callback to wrap
|
|
15
|
-
* @param options Options for the
|
|
16
|
-
* @returns
|
|
17
|
+
* @param options Options for the _Promise_
|
|
18
|
+
* @returns _Promise_-wrapped callback
|
|
17
19
|
*/
|
|
18
20
|
declare function attemptPromise<Value>(callback: () => Promise<Value>, options?: PromiseOptions | AbortSignal | number): Promise<Value>;
|
|
19
21
|
/**
|
|
20
|
-
* Wrap a callback with a
|
|
22
|
+
* Wrap a callback with a _Promise_ and safety handlers, with optional abort capabilities and timeout
|
|
23
|
+
*
|
|
21
24
|
* @param callback Callback to wrap
|
|
22
|
-
* @param options Options for the
|
|
23
|
-
* @returns
|
|
25
|
+
* @param options Options for the _Promise_
|
|
26
|
+
* @returns _Promise_-wrapped callback
|
|
24
27
|
*/
|
|
25
28
|
declare function attemptPromise<Value>(callback: () => Value, options?: PromiseOptions | AbortSignal | number): Promise<Value>;
|
|
26
29
|
/**
|
|
27
|
-
* Handle a list of
|
|
30
|
+
* Handle a list of _Promises_, returning their results in an ordered array
|
|
28
31
|
*
|
|
29
32
|
* Depending on the strategy, the function will either reject on the first error encountered or return an array of rejected and resolved results
|
|
30
|
-
*
|
|
31
|
-
* @param
|
|
33
|
+
*
|
|
34
|
+
* @param items List of _Promises_
|
|
35
|
+
* @param options Options for handling the _Promises_
|
|
32
36
|
* @returns List of results
|
|
33
37
|
*/
|
|
34
38
|
declare function promises<Items extends unknown[], Options extends PromisesOptions>(items: [...Items], options?: Options): Promise<Options['strategy'] extends 'first' ? PromisesUnwrapped<Items> : PromisesValues<PromisesItems<Items>>>;
|
|
35
39
|
/**
|
|
36
|
-
* Handle a list of
|
|
40
|
+
* Handle a list of _Promises_, returning their results in an ordered array
|
|
37
41
|
*
|
|
38
42
|
* Depending on the strategy, the function will either reject on the first error encountered or return an array of rejected and resolved results
|
|
39
|
-
*
|
|
40
|
-
* @param
|
|
43
|
+
*
|
|
44
|
+
* @param items List of _Promises_
|
|
45
|
+
* @param options Options for handling the _Promises_
|
|
41
46
|
* @returns List of results
|
|
42
47
|
*/
|
|
43
48
|
declare function promises<Value, Options extends PromisesOptions>(items: Promise<Value>[], options?: Options): Promise<Options['strategy'] extends 'first' ? Value[] : PromisesValue<Value>[]>;
|
|
44
49
|
/**
|
|
45
|
-
* Handle a list of
|
|
50
|
+
* Handle a list of _Promises_, returning their results in an ordered array
|
|
51
|
+
*
|
|
52
|
+
* If any _Promise_ in the list is rejected, the whole function will reject
|
|
46
53
|
*
|
|
47
|
-
*
|
|
48
|
-
* @param
|
|
49
|
-
* @param strategy Strategy for handling the promises; rejects on the first error encountered
|
|
54
|
+
* @param items List of _Promises_
|
|
55
|
+
* @param strategy Strategy for handling the _Promises_; rejects on the first error encountered
|
|
50
56
|
* @returns List of results
|
|
51
57
|
*/
|
|
52
58
|
declare function promises<Items extends unknown[]>(items: [...Items], strategy: 'first'): Promise<PromisesUnwrapped<Items>>;
|
|
53
59
|
/**
|
|
54
|
-
* Handle a list of
|
|
60
|
+
* Handle a list of _Promises_, returning their results in an ordered array
|
|
55
61
|
*
|
|
56
|
-
* If any
|
|
57
|
-
*
|
|
58
|
-
* @param
|
|
62
|
+
* If any _Promise_ in the list is rejected, the whole function will reject
|
|
63
|
+
*
|
|
64
|
+
* @param items List of _Promises_
|
|
65
|
+
* @param strategy Strategy for handling the _Promises_; rejects on the first error encountered
|
|
59
66
|
* @returns List of results
|
|
60
67
|
*/
|
|
61
68
|
declare function promises<Value>(items: Promise<Value>[], strategy: 'first'): Promise<Value[]>;
|
|
62
69
|
/**
|
|
63
|
-
* Handle a list of
|
|
64
|
-
*
|
|
65
|
-
* @param
|
|
70
|
+
* Handle a list of _Promises_, returning their results in an ordered array of rejected and resolved results
|
|
71
|
+
*
|
|
72
|
+
* @param items List of _Promises_
|
|
73
|
+
* @param signal AbortSignal for aborting the operation _(when aborted, the _Promise_ will reject with the reason of the signal)_
|
|
66
74
|
* @returns List of results
|
|
67
75
|
*/
|
|
68
76
|
declare function promises<Items extends unknown[]>(items: [...Items], signal?: AbortSignal): Promise<PromisesValues<PromisesItems<Items>>>;
|
|
69
77
|
/**
|
|
70
|
-
* Handle a list of
|
|
71
|
-
*
|
|
72
|
-
* @param
|
|
78
|
+
* Handle a list of _Promises_, returning their results in an ordered array of rejected and resolved results
|
|
79
|
+
*
|
|
80
|
+
* @param items List of _Promises_
|
|
81
|
+
* @param signal AbortSignal for aborting the operation _(when aborted, the _Promise_ will reject with the reason of the signal)_
|
|
73
82
|
* @returns List of results
|
|
74
83
|
*/
|
|
75
84
|
declare function promises<Value>(items: Array<Promise<Value> | (() => Promise<Value>)>, signal?: AbortSignal): Promise<PromisesValue<Value>[]>;
|
|
@@ -77,24 +86,26 @@ declare namespace promises {
|
|
|
77
86
|
var result: typeof resultPromises;
|
|
78
87
|
}
|
|
79
88
|
/**
|
|
80
|
-
* Handle a list of
|
|
89
|
+
* Handle a list of _Promises_, returning their results in an ordered array of results _({@link Result})_
|
|
81
90
|
*
|
|
82
91
|
* Depending on the strategy, the function will either reject on the first error encountered or return an array of rejected and resolved results
|
|
83
92
|
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* @param
|
|
93
|
+
* _Available as `resultPromises` and `promises.result`_
|
|
94
|
+
*
|
|
95
|
+
* @param items List of _Promises_
|
|
96
|
+
* @param signal AbortSignal for aborting the operation _(when aborted, the _Promise_ will reject with the reason of the signal)_
|
|
87
97
|
* @returns List of results
|
|
88
98
|
*/
|
|
89
99
|
declare function resultPromises<Items extends unknown[]>(items: [...Items], signal?: AbortSignal): Promise<PromisesResult<PromisesItems<Items>>>;
|
|
90
100
|
/**
|
|
91
|
-
* Handle a list of
|
|
101
|
+
* Handle a list of _Promises_, returning their results in an ordered array of results _({@link Result})_
|
|
92
102
|
*
|
|
93
103
|
* Depending on the strategy, the function will either reject on the first error encountered or return an array of rejected and resolved results
|
|
94
104
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* @param
|
|
105
|
+
* _Available as `resultPromises` and `promises.result`_
|
|
106
|
+
*
|
|
107
|
+
* @param items List of _Promises_
|
|
108
|
+
* @param signal AbortSignal for aborting the operation _(when aborted, the _Promise_ will reject with the reason of the signal)_
|
|
98
109
|
* @returns List of results
|
|
99
110
|
*/
|
|
100
111
|
declare function resultPromises<Value>(items: Promise<Value>[], signal?: AbortSignal): Promise<Result<Awaited<Value>>[]>;
|
package/dist/promise/misc.d.mts
CHANGED
|
@@ -5,22 +5,25 @@ import { isFulfilled, isRejected } from "./helpers.mjs";
|
|
|
5
5
|
|
|
6
6
|
//#region src/promise/misc.d.ts
|
|
7
7
|
/**
|
|
8
|
-
* Create a cancelable
|
|
9
|
-
*
|
|
10
|
-
* @
|
|
8
|
+
* Create a cancelable _Promise_
|
|
9
|
+
*
|
|
10
|
+
* @param executor Executor function for the _Promise_
|
|
11
|
+
* @returns Cancelable _Promise_
|
|
11
12
|
*/
|
|
12
13
|
declare function cancelable<Value>(executor: (resolve: (value: Value) => void, reject: (reason: unknown) => void) => void): CancelablePromise<Value>;
|
|
13
14
|
declare function handleResult(status: string, parameters: PromiseParameters): void;
|
|
14
15
|
declare function settlePromise(aborter: () => void, settler: (value: any) => void, value: unknown, signal?: AbortSignal): void;
|
|
15
16
|
/**
|
|
16
|
-
* Converts a
|
|
17
|
-
*
|
|
17
|
+
* Converts a _Promise_ to a promised result
|
|
18
|
+
*
|
|
19
|
+
* @param callback _Promise_ callback
|
|
18
20
|
* @returns Promised result
|
|
19
21
|
*/
|
|
20
22
|
declare function toResult<Value>(callback: () => Promise<Value>): Promise<Result<Value>>;
|
|
21
23
|
/**
|
|
22
|
-
* Converts a
|
|
23
|
-
*
|
|
24
|
+
* Converts a _Promise_ to a promised result
|
|
25
|
+
*
|
|
26
|
+
* @param promise _Promise_ to convert
|
|
24
27
|
* @returns Promised result
|
|
25
28
|
*/
|
|
26
29
|
declare function toResult<Value>(promise: Promise<Value>): Promise<Result<Value>>;
|
package/dist/promise/misc.mjs
CHANGED
|
@@ -3,9 +3,10 @@ import { CancelablePromise, PROMISE_ABORT_EVENT, PROMISE_MESSAGE_EXPECTATION_RES
|
|
|
3
3
|
import { isFulfilled, isRejected } from "./helpers.mjs";
|
|
4
4
|
//#region src/promise/misc.ts
|
|
5
5
|
/**
|
|
6
|
-
* Create a cancelable
|
|
7
|
-
*
|
|
8
|
-
* @
|
|
6
|
+
* Create a cancelable _Promise_
|
|
7
|
+
*
|
|
8
|
+
* @param executor Executor function for the _Promise_
|
|
9
|
+
* @returns Cancelable _Promise_
|
|
9
10
|
*/
|
|
10
11
|
function cancelable(executor) {
|
|
11
12
|
return new CancelablePromise(executor);
|
|
@@ -3,27 +3,28 @@ import { Result } from "../result/models.mjs";
|
|
|
3
3
|
|
|
4
4
|
//#region src/promise/models.d.ts
|
|
5
5
|
/**
|
|
6
|
-
* A
|
|
6
|
+
* A _Promise_ that can be canceled
|
|
7
7
|
*/
|
|
8
8
|
declare class CancelablePromise<Value = void> extends Promise<Value> {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(executor: (resolve: (value: Value) => void, reject: (reason: unknown) => void) => void);
|
|
11
11
|
/**
|
|
12
|
-
* Cancel the
|
|
13
|
-
*
|
|
12
|
+
* Cancel the _Promise_, rejecting it with an optional reason
|
|
13
|
+
*
|
|
14
|
+
* @param reason Optional reason for canceling the _Promise_
|
|
14
15
|
*/
|
|
15
16
|
cancel(reason?: unknown): void;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
|
-
* A
|
|
19
|
+
* A _Promise_ that was fulfilled
|
|
19
20
|
*/
|
|
20
21
|
type FulfilledPromise<Value> = {
|
|
21
22
|
/**
|
|
22
|
-
* Status of the
|
|
23
|
+
* Status of the _Promise_
|
|
23
24
|
*/
|
|
24
25
|
status: typeof PROMISE_TYPE_FULFILLED;
|
|
25
26
|
/**
|
|
26
|
-
* Value of the
|
|
27
|
+
* Value of the _Promise_
|
|
27
28
|
*/
|
|
28
29
|
value: Awaited<Value>;
|
|
29
30
|
};
|
|
@@ -36,15 +37,15 @@ type PromiseHandlers = {
|
|
|
36
37
|
reject: (reason: unknown) => void;
|
|
37
38
|
};
|
|
38
39
|
/**
|
|
39
|
-
* Options for a
|
|
40
|
+
* Options for a _Promise_-handling function
|
|
40
41
|
*/
|
|
41
42
|
type PromiseOptions = {
|
|
42
43
|
/**
|
|
43
|
-
* AbortSignal for aborting the
|
|
44
|
+
* AbortSignal for aborting the _Promise_; when aborted, the _Promise_ will reject with the reason of the signal
|
|
44
45
|
*/
|
|
45
46
|
signal?: AbortSignal;
|
|
46
47
|
/**
|
|
47
|
-
* How long to wait for (in milliseconds; defaults to `0`)
|
|
48
|
+
* How long to wait for _(in milliseconds; defaults to `0`)_
|
|
48
49
|
*/
|
|
49
50
|
time?: number;
|
|
50
51
|
};
|
|
@@ -58,12 +59,10 @@ type PromiseParameters = {
|
|
|
58
59
|
value?: unknown;
|
|
59
60
|
};
|
|
60
61
|
/**
|
|
61
|
-
*
|
|
62
|
+
* _Promise_ handling strategy
|
|
62
63
|
*
|
|
63
|
-
* - `complete`: wait for all
|
|
64
|
-
*
|
|
65
|
-
* - `first`: rejects on the first rejected promise
|
|
66
|
-
* - Returns an array of values
|
|
64
|
+
* - `complete`: wait for all _Promises_ to settle, then return the results, as an array of fulfilled and/or rejected results
|
|
65
|
+
* - `first`: rejects on the first rejected _Promise_, and returns an array of values
|
|
67
66
|
*/
|
|
68
67
|
type PromiseStrategy = 'complete' | 'first';
|
|
69
68
|
/**
|
|
@@ -74,15 +73,15 @@ declare class PromiseTimeoutError extends Error {
|
|
|
74
73
|
}
|
|
75
74
|
type PromisesItems<Items extends unknown[]> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends GenericCallback ? ReturnType<Items[ItemsKey]> extends Promise<infer Value> ? Promise<Value> : never : Items[ItemsKey] extends Promise<infer Value> ? Promise<Value> : Promise<Items[ItemsKey]> };
|
|
76
75
|
/**
|
|
77
|
-
* Options for handling multiple
|
|
76
|
+
* Options for handling multiple _Promises_
|
|
78
77
|
*/
|
|
79
78
|
type PromisesOptions = {
|
|
80
79
|
/**
|
|
81
|
-
* AbortSignal for aborting the
|
|
80
|
+
* AbortSignal for aborting the _Promises_; when aborted, the _Promises_ will reject with the reason of the signal
|
|
82
81
|
*/
|
|
83
82
|
signal?: AbortSignal;
|
|
84
83
|
/**
|
|
85
|
-
* Strategy for handling the
|
|
84
|
+
* Strategy for handling the _Promises_; defaults to `complete`
|
|
86
85
|
*/
|
|
87
86
|
strategy?: PromiseStrategy;
|
|
88
87
|
};
|
|
@@ -91,11 +90,11 @@ type PromisesUnwrapped<Items extends unknown[]> = { [ItemsKey in keyof Items]: I
|
|
|
91
90
|
type PromisesValue<Value> = FulfilledPromise<Value> | RejectedPromise;
|
|
92
91
|
type PromisesValues<Items extends unknown[]> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends GenericCallback ? ReturnType<Items[ItemsKey]> extends Promise<infer Value> ? PromisesValue<Awaited<Value>> : never : Items[ItemsKey] extends Promise<infer Value> ? PromisesValue<Awaited<Value>> : never };
|
|
93
92
|
/**
|
|
94
|
-
* A
|
|
93
|
+
* A _Promise_ that was rejected
|
|
95
94
|
*/
|
|
96
95
|
type RejectedPromise = {
|
|
97
96
|
/**
|
|
98
|
-
* Status of the
|
|
97
|
+
* Status of the _Promise_
|
|
99
98
|
*/
|
|
100
99
|
status: typeof PROMISE_TYPE_REJECTED;
|
|
101
100
|
/**
|