@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.
Files changed (229) hide show
  1. package/dist/array/filter.d.mts +4 -4
  2. package/dist/array/find.d.mts +4 -4
  3. package/dist/array/first.d.mts +4 -4
  4. package/dist/array/get.d.mts +27 -1
  5. package/dist/array/get.mjs +5 -3
  6. package/dist/array/group-by.d.mts +6 -6
  7. package/dist/array/last.d.mts +4 -4
  8. package/dist/array/match.d.mts +7 -6
  9. package/dist/array/move.d.mts +7 -7
  10. package/dist/array/move.mjs +1 -1
  11. package/dist/array/select.d.mts +1 -0
  12. package/dist/array/slice.d.mts +3 -3
  13. package/dist/array/sort.d.mts +10 -7
  14. package/dist/array/sort.mjs +4 -3
  15. package/dist/array/swap.d.mts +1 -1
  16. package/dist/array/swap.mjs +1 -1
  17. package/dist/array/to-map.d.mts +32 -32
  18. package/dist/array/to-record.d.mts +6 -6
  19. package/dist/array/to-set.d.mts +6 -6
  20. package/dist/beacon.d.mts +6 -0
  21. package/dist/beacon.mjs +3 -0
  22. package/dist/color/index.d.mts +6 -2
  23. package/dist/color/index.mjs +6 -2
  24. package/dist/color/instance.d.mts +78 -14
  25. package/dist/color/instance.mjs +78 -14
  26. package/dist/color/misc/get.d.mts +39 -11
  27. package/dist/color/misc/get.mjs +39 -11
  28. package/dist/color/misc/is.d.mts +26 -11
  29. package/dist/color/misc/is.mjs +26 -11
  30. package/dist/color/misc/state.mjs +1 -1
  31. package/dist/color/models.d.mts +7 -4
  32. package/dist/color/space/hex.d.mts +15 -6
  33. package/dist/color/space/hex.mjs +15 -6
  34. package/dist/color/space/hsl.d.mts +10 -4
  35. package/dist/color/space/hsl.mjs +10 -4
  36. package/dist/color/space/rgb.d.mts +21 -12
  37. package/dist/color/space/rgb.mjs +21 -12
  38. package/dist/function/assert.d.mts +20 -14
  39. package/dist/function/assert.mjs +19 -13
  40. package/dist/function/limit.d.mts +8 -6
  41. package/dist/function/limit.mjs +8 -6
  42. package/dist/function/memoize.d.mts +15 -4
  43. package/dist/function/memoize.mjs +18 -4
  44. package/dist/function/once.d.mts +5 -3
  45. package/dist/function/once.mjs +5 -3
  46. package/dist/function/retry.d.mts +5 -2
  47. package/dist/function/retry.mjs +3 -1
  48. package/dist/function/work.d.mts +146 -98
  49. package/dist/{kalas.d.mts → herald.d.mts} +17 -8
  50. package/dist/{kalas.mjs → herald.mjs} +22 -13
  51. package/dist/index.d.mts +1464 -708
  52. package/dist/index.mjs +677 -324
  53. package/dist/internal/array/index-of.d.mts +4 -4
  54. package/dist/internal/array/insert.mjs +1 -1
  55. package/dist/internal/array/shuffle.d.mts +1 -0
  56. package/dist/internal/array/shuffle.mjs +2 -1
  57. package/dist/internal/is.d.mts +26 -8
  58. package/dist/internal/is.mjs +26 -8
  59. package/dist/internal/math/aggregate.d.mts +9 -9
  60. package/dist/internal/number.d.mts +13 -2
  61. package/dist/internal/number.mjs +13 -2
  62. package/dist/internal/random.d.mts +4 -2
  63. package/dist/internal/random.mjs +7 -5
  64. package/dist/internal/result.d.mts +17 -11
  65. package/dist/internal/result.mjs +10 -14
  66. package/dist/internal/string.d.mts +16 -1
  67. package/dist/internal/string.mjs +24 -1
  68. package/dist/internal/value/compare.d.mts +5 -2
  69. package/dist/internal/value/compare.mjs +5 -2
  70. package/dist/internal/value/equal.d.mts +12 -3
  71. package/dist/internal/value/equal.mjs +7 -4
  72. package/dist/internal/value/get.d.mts +17 -17
  73. package/dist/internal/value/has.d.mts +55 -11
  74. package/dist/internal/value/set.d.mts +24 -0
  75. package/dist/is.d.mts +12 -0
  76. package/dist/is.mjs +16 -1
  77. package/dist/logger.d.mts +7 -6
  78. package/dist/logger.mjs +6 -5
  79. package/dist/math.d.mts +36 -18
  80. package/dist/math.mjs +6 -3
  81. package/dist/models.d.mts +3 -3
  82. package/dist/promise/delay.d.mts +2 -0
  83. package/dist/promise/helpers.d.mts +6 -4
  84. package/dist/promise/helpers.mjs +6 -4
  85. package/dist/promise/index.d.mts +49 -38
  86. package/dist/promise/misc.d.mts +10 -7
  87. package/dist/promise/misc.mjs +4 -3
  88. package/dist/promise/models.d.mts +18 -19
  89. package/dist/promise/models.mjs +4 -3
  90. package/dist/promise/timed.d.mts +8 -6
  91. package/dist/query.d.mts +2 -0
  92. package/dist/query.mjs +2 -0
  93. package/dist/queue.d.mts +15 -4
  94. package/dist/queue.mjs +10 -3
  95. package/dist/random.d.mts +9 -2
  96. package/dist/random.mjs +7 -2
  97. package/dist/result/index.d.mts +14 -8
  98. package/dist/result/match.d.mts +18 -10
  99. package/dist/result/misc.d.mts +14 -7
  100. package/dist/result/misc.mjs +4 -2
  101. package/dist/result/models.d.mts +2 -0
  102. package/dist/result/work/flow.d.mts +86 -62
  103. package/dist/result/work/pipe.d.mts +55 -33
  104. package/dist/sized/map.d.mts +19 -16
  105. package/dist/sized/map.mjs +4 -4
  106. package/dist/sized/set.d.mts +20 -16
  107. package/dist/sized/set.mjs +8 -7
  108. package/dist/string/case.d.mts +8 -0
  109. package/dist/string/case.mjs +8 -0
  110. package/dist/string/fuzzy.d.mts +19 -5
  111. package/dist/string/fuzzy.mjs +7 -0
  112. package/dist/string/index.d.mts +17 -2
  113. package/dist/string/index.mjs +7 -9
  114. package/dist/string/match.d.mts +3 -0
  115. package/dist/string/match.mjs +3 -0
  116. package/dist/string/normalize.d.mts +6 -2
  117. package/dist/string/normalize.mjs +5 -2
  118. package/dist/string/template.d.mts +38 -9
  119. package/dist/string/template.mjs +19 -19
  120. package/dist/value/clone.d.mts +25 -4
  121. package/dist/value/clone.mjs +36 -22
  122. package/dist/value/collection.d.mts +9 -6
  123. package/dist/value/collection.mjs +3 -2
  124. package/dist/value/diff.d.mts +3 -1
  125. package/dist/value/diff.mjs +1 -0
  126. package/dist/value/freeze.d.mts +118 -9
  127. package/dist/value/freeze.mjs +56 -14
  128. package/dist/value/index.d.mts +1 -2
  129. package/dist/value/index.mjs +1 -2
  130. package/dist/value/merge.d.mts +11 -5
  131. package/dist/value/merge.mjs +2 -2
  132. package/dist/value/omit.d.mts +1 -0
  133. package/dist/value/omit.mjs +1 -0
  134. package/dist/value/pick.d.mts +1 -0
  135. package/dist/value/pick.mjs +1 -0
  136. package/dist/value/shake.d.mts +1 -0
  137. package/dist/value/shake.mjs +1 -0
  138. package/dist/value/smush.d.mts +1 -0
  139. package/dist/value/smush.mjs +1 -0
  140. package/dist/value/transform.d.mts +7 -3
  141. package/dist/value/unsmush.d.mts +1 -0
  142. package/dist/value/unsmush.mjs +1 -0
  143. package/package.json +11 -7
  144. package/src/array/filter.ts +4 -4
  145. package/src/array/find.ts +4 -4
  146. package/src/array/first.ts +4 -4
  147. package/src/array/get.ts +40 -5
  148. package/src/array/group-by.ts +6 -6
  149. package/src/array/last.ts +4 -4
  150. package/src/array/match.ts +7 -6
  151. package/src/array/move.ts +7 -7
  152. package/src/array/select.ts +1 -0
  153. package/src/array/slice.ts +3 -3
  154. package/src/array/sort.ts +15 -10
  155. package/src/array/swap.ts +1 -1
  156. package/src/array/to-map.ts +32 -32
  157. package/src/array/to-record.ts +6 -6
  158. package/src/array/to-set.ts +6 -6
  159. package/src/beacon.ts +6 -0
  160. package/src/color/index.ts +6 -2
  161. package/src/color/instance.ts +78 -14
  162. package/src/color/misc/get.ts +39 -11
  163. package/src/color/misc/is.ts +26 -11
  164. package/src/color/misc/state.ts +1 -1
  165. package/src/color/models.ts +7 -4
  166. package/src/color/space/hex.ts +15 -6
  167. package/src/color/space/hsl.ts +10 -4
  168. package/src/color/space/rgb.ts +21 -12
  169. package/src/function/assert.ts +20 -14
  170. package/src/function/limit.ts +8 -6
  171. package/src/function/memoize.ts +24 -5
  172. package/src/function/once.ts +5 -3
  173. package/src/function/retry.ts +7 -3
  174. package/src/function/work.ts +146 -98
  175. package/src/{kalas.ts → herald.ts} +23 -14
  176. package/src/index.ts +3 -2
  177. package/src/internal/array/index-of.ts +4 -4
  178. package/src/internal/array/insert.ts +1 -1
  179. package/src/internal/array/shuffle.ts +2 -1
  180. package/src/internal/is.ts +26 -8
  181. package/src/internal/math/aggregate.ts +9 -9
  182. package/src/internal/number.ts +13 -2
  183. package/src/internal/random.ts +10 -4
  184. package/src/internal/result.ts +30 -29
  185. package/src/internal/string.ts +28 -0
  186. package/src/internal/value/compare.ts +5 -2
  187. package/src/internal/value/equal.ts +13 -4
  188. package/src/internal/value/get.ts +17 -17
  189. package/src/internal/value/has.ts +54 -11
  190. package/src/internal/value/set.ts +24 -0
  191. package/src/is.ts +15 -1
  192. package/src/logger.ts +8 -7
  193. package/src/math.ts +36 -18
  194. package/src/models.ts +3 -3
  195. package/src/promise/delay.ts +2 -0
  196. package/src/promise/helpers.ts +6 -4
  197. package/src/promise/index.ts +49 -38
  198. package/src/promise/misc.ts +10 -7
  199. package/src/promise/models.ts +18 -19
  200. package/src/promise/timed.ts +8 -6
  201. package/src/query.ts +2 -0
  202. package/src/queue.ts +15 -4
  203. package/src/random.ts +8 -1
  204. package/src/result/index.ts +14 -8
  205. package/src/result/match.ts +18 -10
  206. package/src/result/misc.ts +17 -9
  207. package/src/result/models.ts +2 -0
  208. package/src/result/work/flow.ts +86 -62
  209. package/src/result/work/pipe.ts +55 -33
  210. package/src/sized/map.ts +20 -17
  211. package/src/sized/set.ts +21 -17
  212. package/src/string/case.ts +8 -0
  213. package/src/string/fuzzy.ts +19 -5
  214. package/src/string/index.ts +18 -15
  215. package/src/string/match.ts +3 -0
  216. package/src/string/normalize.ts +6 -2
  217. package/src/string/template.ts +69 -18
  218. package/src/value/clone.ts +51 -26
  219. package/src/value/collection.ts +9 -6
  220. package/src/value/diff.ts +3 -1
  221. package/src/value/freeze.ts +239 -25
  222. package/src/value/index.ts +0 -1
  223. package/src/value/merge.ts +11 -5
  224. package/src/value/omit.ts +1 -0
  225. package/src/value/pick.ts +1 -0
  226. package/src/value/shake.ts +1 -0
  227. package/src/value/smush.ts +1 -0
  228. package/src/value/transform.ts +7 -3
  229. 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 logged timer with a label
50
- * @param label Label for the timer
51
- * @returns Time instance
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): Time;
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 Time {
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 Time, logger };
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 logged timer with a label
71
- * @param label Label for the timer
72
- * @returns Time instance
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 Time(label);
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 Time = class {
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!
@@ -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 promise result?
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 promise result, `false` otherwise
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 promise result?
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 promise result, `false` otherwise
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
@@ -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 promise result?
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 promise result, `false` otherwise
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 promise result?
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 promise result, `false` otherwise
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);
@@ -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 promise with safety handlers, with optional abort capabilities and timeout
7
- * @param promise Promise to wrap
8
- * @param options Options for the promise
9
- * @returns Wrapped promise
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 promise-returning callback with safety handlers, with optional abort capabilities and timeout
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 promise
16
- * @returns Promise-wrapped callback
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 promise and safety handlers, with optional abort capabilities and timeout
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 promise
23
- * @returns Promise-wrapped callback
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 promises, returning their results in an ordered array.
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
- * @param items List of promises
31
- * @param options Options for handling the promises
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 promises, returning their results in an ordered array.
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
- * @param items List of promises
40
- * @param options Options for handling the promises
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 promises, returning their results in an ordered array.
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
- * If any promise in the list is rejected, the whole function will reject
48
- * @param items List of promises
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 promises, returning their results in an ordered array.
60
+ * Handle a list of _Promises_, returning their results in an ordered array
55
61
  *
56
- * If any promise in the list is rejected, the whole function will reject
57
- * @param items List of promises
58
- * @param strategy Strategy for handling the promises; rejects on the first error encountered
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 promises, returning their results in an ordered array of rejected and resolved results
64
- * @param items List of promises
65
- * @param signal AbortSignal for aborting the operation _(when aborted, the promise will reject with the reason of the signal)_
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 promises, returning their results in an ordered array of rejected and resolved results
71
- * @param items List of promises
72
- * @param signal AbortSignal for aborting the operation _(when aborted, the promise will reject with the reason of the signal)_
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 promises, returning their results in an ordered array of results _({@link Result})_.
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
- * Available as `resultPromises` and `promises.result`
85
- * @param items List of promises
86
- * @param signal AbortSignal for aborting the operation _(when aborted, the promise will reject with the reason of the signal)_
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 promises, returning their results in an ordered array of results _({@link Result})_.
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
- * Available as `resultPromises` and `promises.result`
96
- * @param items List of promises
97
- * @param signal AbortSignal for aborting the operation _(when aborted, the promise will reject with the reason of the signal)_
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>>[]>;
@@ -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 promise
9
- * @param executor Executor function for the promise
10
- * @returns Cancelable promise
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 promise to a promised result
17
- * @param callback Promise callback
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 promise to a promised result
23
- * @param promise Promise to convert
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>>;
@@ -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 promise
7
- * @param executor Executor function for the promise
8
- * @returns Cancelable promise
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 promise that can be canceled
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 promise, rejecting it with an optional reason
13
- * @param reason Optional reason for canceling the promise
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 promise that was fulfilled
19
+ * A _Promise_ that was fulfilled
19
20
  */
20
21
  type FulfilledPromise<Value> = {
21
22
  /**
22
- * Status of the promise
23
+ * Status of the _Promise_
23
24
  */
24
25
  status: typeof PROMISE_TYPE_FULFILLED;
25
26
  /**
26
- * Value of the promise
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 promise-handling function
40
+ * Options for a _Promise_-handling function
40
41
  */
41
42
  type PromiseOptions = {
42
43
  /**
43
- * AbortSignal for aborting the promise; when aborted, the promise will reject with the reason of the signal
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
- * Promise handling strategy
62
+ * _Promise_ handling strategy
62
63
  *
63
- * - `complete`: wait for all promises to settle, then return the results
64
- * - Returns an array of fulfilled and/or rejected results
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 promises
76
+ * Options for handling multiple _Promises_
78
77
  */
79
78
  type PromisesOptions = {
80
79
  /**
81
- * AbortSignal for aborting the promises; when aborted, the promises will reject with the reason of the signal
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 promises; defaults to `complete`
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 promise that was rejected
93
+ * A _Promise_ that was rejected
95
94
  */
96
95
  type RejectedPromise = {
97
96
  /**
98
- * Status of the promise
97
+ * Status of the _Promise_
99
98
  */
100
99
  status: typeof PROMISE_TYPE_REJECTED;
101
100
  /**