@ts-fns/stdlib 0.1.0 → 0.2.1

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 (135) hide show
  1. package/dist/array/index.cjs +239 -37
  2. package/dist/array/index.cjs.map +1 -1
  3. package/dist/array/index.d.cts +437 -36
  4. package/dist/array/index.d.cts.map +1 -1
  5. package/dist/array/index.d.mts +437 -36
  6. package/dist/array/index.d.mts.map +1 -1
  7. package/dist/array/index.mjs +225 -22
  8. package/dist/array/index.mjs.map +1 -1
  9. package/dist/function/index.cjs +4 -2
  10. package/dist/function/index.d.cts +128 -13
  11. package/dist/function/index.d.cts.map +1 -1
  12. package/dist/function/index.d.mts +128 -13
  13. package/dist/function/index.d.mts.map +1 -1
  14. package/dist/function/index.mjs +3 -3
  15. package/dist/{function-DnI2v0p3.mjs → function-CYHPhQCQ.mjs} +84 -6
  16. package/dist/function-CYHPhQCQ.mjs.map +1 -0
  17. package/dist/{function-CB82a2GS.cjs → function-DYPifnmg.cjs} +95 -5
  18. package/dist/function-DYPifnmg.cjs.map +1 -0
  19. package/dist/{get-yrs1Kqho.cjs → get-1kqkxPFX.cjs} +20 -8
  20. package/dist/get-1kqkxPFX.cjs.map +1 -0
  21. package/dist/{get-CWL_cu6G.mjs → get-Dv6ejLZg.mjs} +21 -3
  22. package/dist/get-Dv6ejLZg.mjs.map +1 -0
  23. package/dist/guard/index.cjs +5 -12
  24. package/dist/guard/index.cjs.map +1 -1
  25. package/dist/guard/index.d.cts +18 -17
  26. package/dist/guard/index.d.cts.map +1 -1
  27. package/dist/guard/index.d.mts +18 -17
  28. package/dist/guard/index.d.mts.map +1 -1
  29. package/dist/guard/index.mjs +4 -12
  30. package/dist/guard/index.mjs.map +1 -1
  31. package/dist/index-MbdqaUt1.d.cts +54 -0
  32. package/dist/index-MbdqaUt1.d.cts.map +1 -0
  33. package/dist/index-k-paNOu4.d.mts +54 -0
  34. package/dist/index-k-paNOu4.d.mts.map +1 -0
  35. package/dist/iterator/index.cjs +72 -26
  36. package/dist/iterator/index.cjs.map +1 -1
  37. package/dist/iterator/index.d.cts +157 -5
  38. package/dist/iterator/index.d.cts.map +1 -1
  39. package/dist/iterator/index.d.mts +157 -5
  40. package/dist/iterator/index.d.mts.map +1 -1
  41. package/dist/iterator/index.mjs +66 -24
  42. package/dist/iterator/index.mjs.map +1 -1
  43. package/dist/lens/index.cjs +3 -3
  44. package/dist/lens/index.cjs.map +1 -1
  45. package/dist/lens/index.mjs +3 -3
  46. package/dist/lens/index.mjs.map +1 -1
  47. package/dist/map/index.cjs +88 -1
  48. package/dist/map/index.cjs.map +1 -1
  49. package/dist/map/index.d.cts +130 -2
  50. package/dist/map/index.d.cts.map +1 -1
  51. package/dist/map/index.d.mts +130 -2
  52. package/dist/map/index.d.mts.map +1 -1
  53. package/dist/map/index.mjs +86 -2
  54. package/dist/map/index.mjs.map +1 -1
  55. package/dist/number/index.cjs +91 -18
  56. package/dist/number/index.cjs.map +1 -1
  57. package/dist/number/index.d.cts +134 -19
  58. package/dist/number/index.d.cts.map +1 -1
  59. package/dist/number/index.d.mts +134 -19
  60. package/dist/number/index.d.mts.map +1 -1
  61. package/dist/number/index.mjs +91 -18
  62. package/dist/number/index.mjs.map +1 -1
  63. package/dist/object/index.cjs +111 -7
  64. package/dist/object/index.cjs.map +1 -1
  65. package/dist/object/index.d.cts +186 -26
  66. package/dist/object/index.d.cts.map +1 -1
  67. package/dist/object/index.d.mts +186 -26
  68. package/dist/object/index.d.mts.map +1 -1
  69. package/dist/object/index.mjs +111 -7
  70. package/dist/object/index.mjs.map +1 -1
  71. package/dist/orNull-CJNrTjhQ.cjs +45 -0
  72. package/dist/orNull-CJNrTjhQ.cjs.map +1 -0
  73. package/dist/orNull-EeXiCxD4.mjs +34 -0
  74. package/dist/orNull-EeXiCxD4.mjs.map +1 -0
  75. package/dist/order/index.cjs +22 -1
  76. package/dist/order/index.cjs.map +1 -1
  77. package/dist/order/index.d.cts +2 -2
  78. package/dist/order/index.d.mts +2 -2
  79. package/dist/order/index.mjs +22 -1
  80. package/dist/order/index.mjs.map +1 -1
  81. package/dist/{order.constants-BWSCg3C7.d.cts → order.constants-DpGY-EDp.d.cts} +4 -1
  82. package/dist/order.constants-DpGY-EDp.d.cts.map +1 -0
  83. package/dist/{order.constants-BWSCg3C7.d.mts → order.constants-DpGY-EDp.d.mts} +4 -1
  84. package/dist/order.constants-DpGY-EDp.d.mts.map +1 -0
  85. package/dist/purry-DXnhXie9.mjs +22 -0
  86. package/dist/purry-DXnhXie9.mjs.map +1 -0
  87. package/dist/purry-Dqp_F64t.cjs +27 -0
  88. package/dist/purry-Dqp_F64t.cjs.map +1 -0
  89. package/dist/set/index.cjs +59 -1
  90. package/dist/set/index.cjs.map +1 -1
  91. package/dist/set/index.d.cts +151 -2
  92. package/dist/set/index.d.cts.map +1 -1
  93. package/dist/set/index.d.mts +151 -2
  94. package/dist/set/index.d.mts.map +1 -1
  95. package/dist/set/index.mjs +59 -2
  96. package/dist/set/index.mjs.map +1 -1
  97. package/dist/string/index.cjs +289 -15
  98. package/dist/string/index.cjs.map +1 -1
  99. package/dist/string/index.d.cts +406 -1
  100. package/dist/string/index.d.cts.map +1 -1
  101. package/dist/string/index.d.mts +406 -1
  102. package/dist/string/index.d.mts.map +1 -1
  103. package/dist/string/index.mjs +271 -4
  104. package/dist/string/index.mjs.map +1 -1
  105. package/dist/tuple/index.cjs +20 -21
  106. package/dist/tuple/index.cjs.map +1 -1
  107. package/dist/tuple/index.d.cts +27 -58
  108. package/dist/tuple/index.d.cts.map +1 -1
  109. package/dist/tuple/index.d.mts +27 -58
  110. package/dist/tuple/index.d.mts.map +1 -1
  111. package/dist/tuple/index.mjs +20 -22
  112. package/dist/tuple/index.mjs.map +1 -1
  113. package/package.json +55 -127
  114. package/dist/function-CB82a2GS.cjs.map +0 -1
  115. package/dist/function-DnI2v0p3.mjs.map +0 -1
  116. package/dist/get-CWL_cu6G.mjs.map +0 -1
  117. package/dist/get-yrs1Kqho.cjs.map +0 -1
  118. package/dist/index-BJlKyBJH.d.cts +0 -18
  119. package/dist/index-BJlKyBJH.d.cts.map +0 -1
  120. package/dist/index-DGrnGMDt.d.mts +0 -18
  121. package/dist/index-DGrnGMDt.d.mts.map +0 -1
  122. package/dist/isNotNil-DrF-ohem.cjs +0 -28
  123. package/dist/isNotNil-DrF-ohem.cjs.map +0 -1
  124. package/dist/isNotNil-R5f1hC53.mjs +0 -23
  125. package/dist/isNotNil-R5f1hC53.mjs.map +0 -1
  126. package/dist/orThrow-V91Jw2lF.mjs +0 -15
  127. package/dist/orThrow-V91Jw2lF.mjs.map +0 -1
  128. package/dist/orThrow-ejzcQYAI.cjs +0 -20
  129. package/dist/orThrow-ejzcQYAI.cjs.map +0 -1
  130. package/dist/order.constants-BWSCg3C7.d.cts.map +0 -1
  131. package/dist/order.constants-BWSCg3C7.d.mts.map +0 -1
  132. package/dist/purry-B2_0DGLV.cjs +0 -28
  133. package/dist/purry-B2_0DGLV.cjs.map +0 -1
  134. package/dist/purry-BOWmqwDB.mjs +0 -23
  135. package/dist/purry-BOWmqwDB.mjs.map +0 -1
@@ -1,43 +1,102 @@
1
1
  import { n as NaNError } from "../errors-CJsLpYo9.mjs";
2
2
  import { i as NarrowedTo } from "../types-D8f67ZCe.mjs";
3
- import { i as Order } from "../order.constants-BWSCg3C7.mjs";
3
+ import { i as Order } from "../order.constants-DpGY-EDp.mjs";
4
4
 
5
5
  //#region src/number/_globalAliases.d.ts
6
+ /**
7
+ * Number predicates from the global `Number` object: `isFinite`, `isInteger`, and `isSafeInteger`.
8
+ * @function
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * isFinite(42); // true
13
+ * isInteger(3.14); // false
14
+ * isSafeInteger(Number.MAX_SAFE_INTEGER); // true
15
+ * ```
16
+ */
6
17
  declare const isFinite: (number: unknown) => boolean, isInteger: (number: unknown) => boolean, isSafeInteger: (number: unknown) => boolean;
7
- declare const numberConstructor: NumberConstructor;
18
+ /**
19
+ * Alias of the built-in number constructor. `new Number() === new Number.Ctor()`
20
+ * @function
21
+ */
22
+ declare const Ctor: NumberConstructor;
8
23
  //#endregion
9
24
  //#region src/number/add.d.ts
25
+ /**
26
+ * Adds two numbers together.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * add(1, 2); // 3
31
+ * add(2)(1); // 3
32
+ * ```
33
+ */
10
34
  declare function add(right: number): (left: number) => number;
11
35
  declare function add(left: number, right: number): number;
12
36
  //#endregion
13
37
  //#region src/number/compare.d.ts
38
+ /**
39
+ * Compares two numbers and returns their ordering.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * compare(1, 2); // -1
44
+ * compare(2, 2); // 0
45
+ * compare(3, 2); // 1
46
+ * ```
47
+ */
14
48
  declare function compare(left: number, right: number): Order;
15
49
  //#endregion
16
50
  //#region src/number/decrement.d.ts
51
+ /**
52
+ * Returns the number decremented by one.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * decrement(5); // 4
57
+ * ```
58
+ */
17
59
  declare function decrement(num: number): number;
18
60
  //#endregion
19
61
  //#region src/number/divide.d.ts
62
+ /**
63
+ * Divides one number by another.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * divide(10, 2); // 5
68
+ * divide(2)(10); // 5
69
+ * ```
70
+ */
20
71
  declare function divide(right: number): (left: number) => number;
21
72
  declare function divide(left: number, right: number): number;
22
73
  //#endregion
23
74
  //#region src/number/increment.d.ts
75
+ /**
76
+ * Returns the number incremented by one.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * increment(5); // 6
81
+ * ```
82
+ */
24
83
  declare function increment(num: number): number;
25
84
  //#endregion
26
85
  //#region src/number/isNaN.d.ts
27
86
  /**
87
+ * Checks whether a number is `NaN`.
28
88
  *
29
- * @param num
30
- * @returns
89
+ * @example
90
+ * ```ts
91
+ * isNaN(NaN); // true
92
+ * isNaN(0); // false
93
+ * ```
31
94
  */
32
95
  declare function isNaN(num: number): boolean;
33
96
  //#endregion
34
97
  //#region src/number/isNil.d.ts
35
98
  /**
36
- * Check whether a value is nullish (`null` or `undefined`)
37
- *
38
- * @category Guard
39
- * @param value - The value to check.
40
- * @returns `true` if `value` is `null` or `undefined`; otherwise `false`.
99
+ * Checks whether a value is nullish (`null` or `undefined`).
41
100
  *
42
101
  * @example
43
102
  * ```ts
@@ -50,19 +109,19 @@ declare function isNil<T>(value: T): value is T & (null | undefined);
50
109
  //#endregion
51
110
  //#region src/number/isNotNaN.d.ts
52
111
  /**
112
+ * Checks whether a number is not `NaN`.
53
113
  *
54
- * @param num
55
- * @returns
114
+ * @example
115
+ * ```ts
116
+ * isNotNaN(0); // true
117
+ * isNotNaN(NaN); // false
118
+ * ```
56
119
  */
57
120
  declare function isNotNaN(num: number): boolean;
58
121
  //#endregion
59
122
  //#region src/number/isNumber.d.ts
60
123
  /**
61
- * Check whether a value is a number (primitive `number`, not `NaN`).
62
- *
63
- * @category Guard
64
- * @param data - The value to check.
65
- * @returns `true` if `data` is a number; otherwise `false`.
124
+ * Checks whether a value is a primitive `number`.
66
125
  *
67
126
  * @example
68
127
  * ```ts
@@ -75,38 +134,94 @@ declare function isNotNaN(num: number): boolean;
75
134
  declare function isNumber<T>(data: T | number): data is NarrowedTo<T, number>;
76
135
  //#endregion
77
136
  //#region src/number/multiply.d.ts
137
+ /**
138
+ * Multiplies two numbers together.
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * multiply(3, 4); // 12
143
+ * multiply(4)(3); // 12
144
+ * ```
145
+ */
78
146
  declare function multiply(right: number): (left: number) => number;
79
147
  declare function multiply(left: number, right: number): number;
80
148
  //#endregion
81
149
  //#region src/number/parseFloat.d.ts
82
150
  /**
151
+ * Parses a floating-point number from a string.
152
+ * Returns a NaN error when the input is not a valid number.
83
153
  *
154
+ * @example
155
+ * ```ts
156
+ * parseFloat('3.14'); // 3.14
157
+ * parseFloat('abc'); // NaNError
158
+ * ```
84
159
  */
85
160
  declare function parseFloat(data: string): NaNError | number;
86
161
  //#endregion
87
162
  //#region src/number/parseInt.d.ts
88
163
  /**
89
- * @throws {NanError}
164
+ * Parses a base-10 integer from a string.
165
+ * Returns a NaN error when the input is not a valid integer.
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * parseInt('42'); // 42
170
+ * parseInt('abc'); // NaNError
171
+ * ```
90
172
  */
91
173
  declare function parseInt(data: string): NaNError | number;
92
174
  //#endregion
93
175
  //#region src/number/parseIntBase.d.ts
94
176
  /**
177
+ * Parses an integer from a string in the given radix.
178
+ * Throws a NaN error when the radix is invalid or parsing fails.
95
179
  *
96
- * @throws {NaNError}
180
+ * @example
181
+ * ```ts
182
+ * parseIntBase('ff', 16); // 255
183
+ * parseIntBase(16)('ff'); // 255
184
+ * ```
97
185
  */
98
186
  declare function parseIntBase(radix: number): (data: string) => number;
99
187
  declare function parseIntBase(data: string, radix: number): number;
100
188
  //#endregion
101
189
  //#region src/number/product.d.ts
190
+ /**
191
+ * Multiplies all numbers in an array.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * product([2, 3, 4]); // 24
196
+ * product([]); // 1
197
+ * ```
198
+ */
102
199
  declare function product(data: number[]): number;
103
200
  //#endregion
104
201
  //#region src/number/subtract.d.ts
202
+ /**
203
+ * Subtracts one number from another.
204
+ *
205
+ * @example
206
+ * ```ts
207
+ * subtract(10, 3); // 7
208
+ * subtract(3)(10); // 7
209
+ * ```
210
+ */
105
211
  declare function subtract(right: number): (left: number) => number;
106
212
  declare function subtract(left: number, right: number): number;
107
213
  //#endregion
108
214
  //#region src/number/sum.d.ts
215
+ /**
216
+ * Sums all numbers in an array.
217
+ *
218
+ * @example
219
+ * ```ts
220
+ * sum([1, 2, 3]); // 6
221
+ * sum([]); // 0
222
+ * ```
223
+ */
109
224
  declare function sum(data: number[]): number;
110
225
  //#endregion
111
- export { numberConstructor as Number, add, compare, decrement, divide, increment, isFinite, isInteger, isNaN, isNil, isNotNaN, isNumber, isSafeInteger, multiply, parseFloat, parseInt, parseIntBase, product, subtract, sum };
226
+ export { Ctor, add, compare, decrement, divide, increment, isFinite, isInteger, isNaN, isNil, isNotNaN, isNumber, isSafeInteger, multiply, parseFloat, parseInt, parseIntBase, product, subtract, sum };
112
227
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/number/_globalAliases.ts","../../src/number/add.ts","../../src/number/compare.ts","../../src/number/decrement.ts","../../src/number/divide.ts","../../src/number/increment.ts","../../src/number/isNaN.ts","../../src/number/isNil.ts","../../src/number/isNotNaN.ts","../../src/number/isNumber.ts","../../src/number/multiply.ts","../../src/number/parseFloat.ts","../../src/number/parseInt.ts","../../src/number/parseIntBase.ts","../../src/number/product.ts","../../src/number/subtract.ts","../../src/number/sum.ts"],"mappings":";;;;;cAAe,QAAA,GAAQ,MAAA,mCAAW,MAAA,uCAAe,MAAA;AAAA,cAE3C,iBAAA,EAAiB,iBAAS;;;iBCIhB,GAAA,CAAI,KAAA,YAAiB,IAAY;AAAA,iBACjC,GAAA,CAAI,IAAA,UAAc,KAAa;;;iBCJ/B,OAAA,CAAQ,IAAA,UAAc,KAAA,WAAgB,KAAK;;;iBCH3C,SAAA,CAAU,GAAW;;;iBCMrB,MAAA,CAAO,KAAA,YAAiB,IAAY;AAAA,iBACpC,MAAA,CAAO,IAAA,UAAc,KAAa;;;iBCPlC,SAAA,CAAU,GAAW;;;;;;;;iBCKrB,KAAA,CAAM,GAAW;;;;;;;;ANLjC;;;;;;;;AAAiD;iBOcjC,KAAA,IAAS,KAAA,EAAO,CAAA,GAAI,KAAA,IAAS,CAAC;;;;;;;;iBCT9B,QAAA,CAAS,GAAW;;;;;;;ARLpC;;;;;;;;AAAiD;;;iBSiBjC,QAAA,IAAY,IAAA,EAAM,CAAA,YAAa,IAAA,IAAQ,UAAA,CAAW,CAAA;;;iBCXlD,QAAA,CAAS,KAAA,YAAiB,IAAY;AAAA,iBACtC,QAAA,CAAS,IAAA,UAAc,KAAa;;;;;;iBCFpC,UAAA,CAAW,IAAA,WAAe,QAAQ;;;;;;iBCAlC,QAAA,CAAS,IAAA,WAAe,QAAQ;;;;;;;iBCgBhC,YAAA,CAAa,KAAA,YAAiB,IAAY;AAAA,iBAC1C,YAAA,CAAa,IAAA,UAAc,KAAa;;;iBCtBxC,OAAA,CAAQ,IAAc;;;iBCMtB,QAAA,CAAS,KAAA,YAAiB,IAAY;AAAA,iBACtC,QAAA,CAAS,IAAA,UAAc,KAAa;;;iBCPpC,GAAA,CAAI,IAAc"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/number/_globalAliases.ts","../../src/number/add.ts","../../src/number/compare.ts","../../src/number/decrement.ts","../../src/number/divide.ts","../../src/number/increment.ts","../../src/number/isNaN.ts","../../src/number/isNil.ts","../../src/number/isNotNaN.ts","../../src/number/isNumber.ts","../../src/number/multiply.ts","../../src/number/parseFloat.ts","../../src/number/parseInt.ts","../../src/number/parseIntBase.ts","../../src/number/product.ts","../../src/number/subtract.ts","../../src/number/sum.ts"],"mappings":";;;;;;;;;;AAWA;;;;;;cAAe,QAAA,GAAQ,MAAA,mCAAW,MAAA,uCAAe,MAAA;;AAAA;;;cAMpC,IAAA,EAAI,iBAAS;;;;;;;;AAN1B;;;;iBCIgB,GAAA,CAAI,KAAA,YAAiB,IAAY;AAAA,iBACjC,GAAA,CAAI,IAAA,UAAc,KAAa;;;;;;;ADL/C;;;;;;iBEEgB,OAAA,CAAQ,IAAA,UAAc,KAAA,WAAgB,KAAK;;;;;;;;AFF3D;;;iBGHgB,SAAA,CAAU,GAAW;;;;;;;;AHGrC;;;;iBIIgB,MAAA,CAAO,KAAA,YAAiB,IAAY;AAAA,iBACpC,MAAA,CAAO,IAAA,UAAc,KAAa;;;;;;;;AJLlD;;;iBKHgB,SAAA,CAAU,GAAW;;;;;;;;ALGrC;;;;iBMFgB,KAAA,CAAM,GAAW;;;;;;;;ANEjC;;;;;iBODgB,KAAA,IAAS,KAAA,EAAO,CAAA,GAAI,KAAA,IAAS,CAAC;;;;;;;;APC9C;;;;iBQFgB,QAAA,CAAS,GAAW;;;;;;;AREpC;;;;;;;iBSEgB,QAAA,IAAY,IAAA,EAAM,CAAA,YAAa,IAAA,IAAQ,UAAA,CAAW,CAAA;;;;;;;;ATFlE;;;;iBUIgB,QAAA,CAAS,KAAA,YAAiB,IAAY;AAAA,iBACtC,QAAA,CAAS,IAAA,UAAc,KAAa;;;;;;;AVLpD;;;;;;iBWCgB,UAAA,CAAW,IAAA,WAAe,QAAQ;;;;;;;AXDlD;;;;;;iBYCgB,QAAA,CAAS,IAAA,WAAe,QAAQ;;;;;;;;AZDhD;;;;;iBagBgB,YAAA,CAAa,KAAA,YAAiB,IAAY;AAAA,iBAC1C,YAAA,CAAa,IAAA,UAAc,KAAa;;;;;;;;AbjBxD;;;;iBcFgB,OAAA,CAAQ,IAAc;;;;;;;;AdEtC;;;;iBeIgB,QAAA,CAAS,KAAA,YAAiB,IAAY;AAAA,iBACtC,QAAA,CAAS,IAAA,UAAc,KAAa;;;;;;;;AfLpD;;;;iBgBFgB,GAAA,CAAI,IAAc"}
@@ -1,9 +1,24 @@
1
- import { t as purry } from "../purry-BOWmqwDB.mjs";
1
+ import { t as purry } from "../purry-DXnhXie9.mjs";
2
2
  import { n as NaNError } from "../errors-Dw1kitu_.mjs";
3
3
  import "../order/index.mjs";
4
4
  //#region src/number/_globalAliases.ts
5
+ /**
6
+ * Number predicates from the global `Number` object: `isFinite`, `isInteger`, and `isSafeInteger`.
7
+ * @function
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * isFinite(42); // true
12
+ * isInteger(3.14); // false
13
+ * isSafeInteger(Number.MAX_SAFE_INTEGER); // true
14
+ * ```
15
+ */
5
16
  const { isFinite, isInteger, isSafeInteger } = Number;
6
- const numberConstructor = Number;
17
+ /**
18
+ * Alias of the built-in number constructor. `new Number() === new Number.Ctor()`
19
+ * @function
20
+ */
21
+ const Ctor = Number;
7
22
  //#endregion
8
23
  //#region src/number/add.ts
9
24
  function addImplementation(left, right) {
@@ -14,6 +29,16 @@ function add(...args) {
14
29
  }
15
30
  //#endregion
16
31
  //#region src/number/compare.ts
32
+ /**
33
+ * Compares two numbers and returns their ordering.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * compare(1, 2); // -1
38
+ * compare(2, 2); // 0
39
+ * compare(3, 2); // 1
40
+ * ```
41
+ */
17
42
  function compare(left, right) {
18
43
  if (left < right) return -1;
19
44
  if (left > right) return 1;
@@ -21,6 +46,14 @@ function compare(left, right) {
21
46
  }
22
47
  //#endregion
23
48
  //#region src/number/decrement.ts
49
+ /**
50
+ * Returns the number decremented by one.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * decrement(5); // 4
55
+ * ```
56
+ */
24
57
  function decrement(num) {
25
58
  return num - 1;
26
59
  }
@@ -34,15 +67,27 @@ function divide(...args) {
34
67
  }
35
68
  //#endregion
36
69
  //#region src/number/increment.ts
70
+ /**
71
+ * Returns the number incremented by one.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * increment(5); // 6
76
+ * ```
77
+ */
37
78
  function increment(num) {
38
79
  return num + 1;
39
80
  }
40
81
  //#endregion
41
82
  //#region src/number/isNaN.ts
42
83
  /**
84
+ * Checks whether a number is `NaN`.
43
85
  *
44
- * @param num
45
- * @returns
86
+ * @example
87
+ * ```ts
88
+ * isNaN(NaN); // true
89
+ * isNaN(0); // false
90
+ * ```
46
91
  */
47
92
  function isNaN(num) {
48
93
  return Number.isNaN(num);
@@ -50,11 +95,7 @@ function isNaN(num) {
50
95
  //#endregion
51
96
  //#region src/number/isNil.ts
52
97
  /**
53
- * Check whether a value is nullish (`null` or `undefined`)
54
- *
55
- * @category Guard
56
- * @param value - The value to check.
57
- * @returns `true` if `value` is `null` or `undefined`; otherwise `false`.
98
+ * Checks whether a value is nullish (`null` or `undefined`).
58
99
  *
59
100
  * @example
60
101
  * ```ts
@@ -69,9 +110,13 @@ function isNil(value) {
69
110
  //#endregion
70
111
  //#region src/number/isNotNaN.ts
71
112
  /**
113
+ * Checks whether a number is not `NaN`.
72
114
  *
73
- * @param num
74
- * @returns
115
+ * @example
116
+ * ```ts
117
+ * isNotNaN(0); // true
118
+ * isNotNaN(NaN); // false
119
+ * ```
75
120
  */
76
121
  function isNotNaN(num) {
77
122
  return !Number.isNaN(num);
@@ -79,11 +124,7 @@ function isNotNaN(num) {
79
124
  //#endregion
80
125
  //#region src/number/isNumber.ts
81
126
  /**
82
- * Check whether a value is a number (primitive `number`, not `NaN`).
83
- *
84
- * @category Guard
85
- * @param data - The value to check.
86
- * @returns `true` if `data` is a number; otherwise `false`.
127
+ * Checks whether a value is a primitive `number`.
87
128
  *
88
129
  * @example
89
130
  * ```ts
@@ -107,7 +148,14 @@ function multiply(...args) {
107
148
  //#endregion
108
149
  //#region src/number/parseFloat.ts
109
150
  /**
151
+ * Parses a floating-point number from a string.
152
+ * Returns a NaN error when the input is not a valid number.
110
153
  *
154
+ * @example
155
+ * ```ts
156
+ * parseFloat('3.14'); // 3.14
157
+ * parseFloat('abc'); // NaNError
158
+ * ```
111
159
  */
112
160
  function parseFloat(data) {
113
161
  const num = Number.parseFloat(data);
@@ -117,7 +165,14 @@ function parseFloat(data) {
117
165
  //#endregion
118
166
  //#region src/number/parseInt.ts
119
167
  /**
120
- * @throws {NanError}
168
+ * Parses a base-10 integer from a string.
169
+ * Returns a NaN error when the input is not a valid integer.
170
+ *
171
+ * @example
172
+ * ```ts
173
+ * parseInt('42'); // 42
174
+ * parseInt('abc'); // NaNError
175
+ * ```
121
176
  */
122
177
  function parseInt(data) {
123
178
  const num = Number.parseInt(data, 10);
@@ -137,6 +192,15 @@ function parseIntBase(...args) {
137
192
  }
138
193
  //#endregion
139
194
  //#region src/number/product.ts
195
+ /**
196
+ * Multiplies all numbers in an array.
197
+ *
198
+ * @example
199
+ * ```ts
200
+ * product([2, 3, 4]); // 24
201
+ * product([]); // 1
202
+ * ```
203
+ */
140
204
  function product(data) {
141
205
  return data.reduce((a, b) => a * b, 1);
142
206
  }
@@ -150,10 +214,19 @@ function subtract(...args) {
150
214
  }
151
215
  //#endregion
152
216
  //#region src/number/sum.ts
217
+ /**
218
+ * Sums all numbers in an array.
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * sum([1, 2, 3]); // 6
223
+ * sum([]); // 0
224
+ * ```
225
+ */
153
226
  function sum(data) {
154
227
  return data.reduce((a, b) => a + b, 0);
155
228
  }
156
229
  //#endregion
157
- export { numberConstructor as Number, add, compare, decrement, divide, increment, isFinite, isInteger, isNaN, isNil, isNotNaN, isNumber, isSafeInteger, multiply, parseFloat, parseInt, parseIntBase, product, subtract, sum };
230
+ export { Ctor, add, compare, decrement, divide, increment, isFinite, isInteger, isNaN, isNil, isNotNaN, isNumber, isSafeInteger, multiply, parseFloat, parseInt, parseIntBase, product, subtract, sum };
158
231
 
159
232
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/number/_globalAliases.ts","../../src/number/add.ts","../../src/number/compare.ts","../../src/number/decrement.ts","../../src/number/divide.ts","../../src/number/increment.ts","../../src/number/isNaN.ts","../../src/number/isNil.ts","../../src/number/isNotNaN.ts","../../src/number/isNumber.ts","../../src/number/multiply.ts","../../src/number/parseFloat.ts","../../src/number/parseInt.ts","../../src/number/parseIntBase.ts","../../src/number/product.ts","../../src/number/subtract.ts","../../src/number/sum.ts"],"sourcesContent":["export const { isFinite, isInteger, isSafeInteger } = Number;\n\nconst numberConstructor = Number;\nexport { numberConstructor as Number };\n","import { purry } from '../function/purry';\n\nfunction addImplementation(left: number, right: number): number {\n return left + right;\n}\n\nexport function add(right: number): (left: number) => number;\nexport function add(left: number, right: number): number;\nexport function add(...args: unknown[]): unknown {\n return purry(addImplementation, args);\n}\n","import type { Order } from '../order';\nimport { eq, gt, lt } from '../order';\n\nexport function compare(left: number, right: number): Order {\n if (left < right) return lt;\n if (left > right) return gt;\n return eq;\n}\n","export function decrement(num: number): number {\n return num - 1;\n}\n","import { purry } from '../function/purry';\n\nfunction divideImplementation(left: number, right: number): number {\n return left / right;\n}\n\nexport function divide(right: number): (left: number) => number;\nexport function divide(left: number, right: number): number;\nexport function divide(...args: unknown[]): unknown {\n return purry(divideImplementation, args);\n}\n","export function increment(num: number): number {\n return num + 1;\n}\n","/**\n *\n * @param num\n * @returns\n */\nexport function isNaN(num: number): boolean {\n return Number.isNaN(num);\n}\n","/**\n * Check whether a value is nullish (`null` or `undefined`)\n *\n * @category Guard\n * @param value - The value to check.\n * @returns `true` if `value` is `null` or `undefined`; otherwise `false`.\n *\n * @example\n * ```ts\n * isNil(null); // true\n * isNil(undefined); // true\n * isNil(0); // false\n * ```\n */\nexport function isNil<T>(value: T): value is T & (null | undefined) {\n return value == null;\n}\n","/**\n *\n * @param num\n * @returns\n */\nexport function isNotNaN(num: number): boolean {\n return !Number.isNaN(num);\n}\n","import type { NarrowedTo } from '../types';\n\n/**\n * Check whether a value is a number (primitive `number`, not `NaN`).\n *\n * @category Guard\n * @param data - The value to check.\n * @returns `true` if `data` is a number; otherwise `false`.\n *\n * @example\n * ```ts\n * isNumber(1); // true\n * isNumber(Infinity); // true\n * isNumber(NaN); // true\n * isNumber('1'); // false\n * ```\n */\nexport function isNumber<T>(data: T | number): data is NarrowedTo<T, number> {\n return typeof data === 'number';\n}\n","import { purry } from '../function/purry';\n\nfunction multiplyImplementation(left: number, right: number): number {\n return left * right;\n}\n\nexport function multiply(right: number): (left: number) => number;\nexport function multiply(left: number, right: number): number;\nexport function multiply(...args: unknown[]): unknown {\n return purry(multiplyImplementation, args);\n}\n","import { NaNError } from '../errors';\n\n/**\n *\n */\nexport function parseFloat(data: string): NaNError | number {\n const num = Number.parseFloat(data);\n\n if (Number.isNaN(num)) {\n return new NaNError(`Num.parseFloat() :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n","import { NaNError } from '../errors';\n\n/**\n * @throws {NanError}\n */\nexport function parseInt(data: string): NaNError | number {\n const num = Number.parseInt(data, 10);\n\n if (Number.isNaN(num)) {\n return new NaNError(`Num.parseInt() :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n","import { NaNError } from '../errors';\nimport { purry } from '../function/purry';\n\nfunction parseIntBaseImplementation(data: string, radix: number): number {\n if (typeof radix !== 'number') {\n throw new NaNError(`Num.parseFloat(_, radix) :: \"${data}\" must be number`);\n }\n\n const num = Number.parseInt(data, radix);\n\n if (Number.isNaN(num)) {\n throw new NaNError(`Num.parseFloat(data, _) :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n\n/**\n *\n * @throws {NaNError}\n */\nexport function parseIntBase(radix: number): (data: string) => number;\nexport function parseIntBase(data: string, radix: number): number;\nexport function parseIntBase(...args: unknown[]): unknown {\n return purry(parseIntBaseImplementation, args);\n}\n","export function product(data: number[]): number {\n return data.reduce((a, b) => a * b, 1);\n}\n","import { purry } from '../function/purry';\n\nfunction subtractImplementation(left: number, right: number): number {\n return left - right;\n}\n\nexport function subtract(right: number): (left: number) => number;\nexport function subtract(left: number, right: number): number;\nexport function subtract(...args: unknown[]): unknown {\n return purry(subtractImplementation, args);\n}\n","export function sum(data: number[]): number {\n return data.reduce((a, b) => a + b, 0);\n}\n"],"mappings":";;;;AAAA,MAAa,EAAE,UAAU,WAAW,kBAAkB;AAEtD,MAAM,oBAAoB;;;ACA1B,SAAS,kBAAkB,MAAc,OAAuB;CAC9D,OAAO,OAAO;AAChB;AAIA,SAAgB,IAAI,GAAG,MAA0B;CAC/C,OAAO,MAAM,mBAAmB,IAAI;AACtC;;;ACPA,SAAgB,QAAQ,MAAc,OAAsB;CAC1D,IAAI,OAAO,OAAO,OAAA;CAClB,IAAI,OAAO,OAAO,OAAA;CAClB,OAAA;AACF;;;ACPA,SAAgB,UAAU,KAAqB;CAC7C,OAAO,MAAM;AACf;;;ACAA,SAAS,qBAAqB,MAAc,OAAuB;CACjE,OAAO,OAAO;AAChB;AAIA,SAAgB,OAAO,GAAG,MAA0B;CAClD,OAAO,MAAM,sBAAsB,IAAI;AACzC;;;ACVA,SAAgB,UAAU,KAAqB;CAC7C,OAAO,MAAM;AACf;;;;;;;;ACGA,SAAgB,MAAM,KAAsB;CAC1C,OAAO,OAAO,MAAM,GAAG;AACzB;;;;;;;;;;;;;;;;;ACOA,SAAgB,MAAS,OAA2C;CAClE,OAAO,SAAS;AAClB;;;;;;;;ACXA,SAAgB,SAAS,KAAsB;CAC7C,OAAO,CAAC,OAAO,MAAM,GAAG;AAC1B;;;;;;;;;;;;;;;;;;ACUA,SAAgB,SAAY,MAAiD;CAC3E,OAAO,OAAO,SAAS;AACzB;;;ACjBA,SAAS,uBAAuB,MAAc,OAAuB;CACnE,OAAO,OAAO;AAChB;AAIA,SAAgB,SAAS,GAAG,MAA0B;CACpD,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;;;;ACLA,SAAgB,WAAW,MAAiC;CAC1D,MAAM,MAAM,OAAO,WAAW,IAAI;CAElC,IAAI,OAAO,MAAM,GAAG,GAClB,OAAO,IAAI,SAAS,wBAAwB,KAAK,SAAS;CAG5D,OAAO;AACT;;;;;;ACRA,SAAgB,SAAS,MAAiC;CACxD,MAAM,MAAM,OAAO,SAAS,MAAM,EAAE;CAEpC,IAAI,OAAO,MAAM,GAAG,GAClB,OAAO,IAAI,SAAS,sBAAsB,KAAK,SAAS;CAG1D,OAAO;AACT;;;ACVA,SAAS,2BAA2B,MAAc,OAAuB;CACvE,IAAI,OAAO,UAAU,UACnB,MAAM,IAAI,SAAS,gCAAgC,KAAK,iBAAiB;CAG3E,MAAM,MAAM,OAAO,SAAS,MAAM,KAAK;CAEvC,IAAI,OAAO,MAAM,GAAG,GAClB,MAAM,IAAI,SAAS,+BAA+B,KAAK,SAAS;CAGlE,OAAO;AACT;AAQA,SAAgB,aAAa,GAAG,MAA0B;CACxD,OAAO,MAAM,4BAA4B,IAAI;AAC/C;;;ACzBA,SAAgB,QAAQ,MAAwB;CAC9C,OAAO,KAAK,QAAQ,GAAG,MAAM,IAAI,GAAG,CAAC;AACvC;;;ACAA,SAAS,uBAAuB,MAAc,OAAuB;CACnE,OAAO,OAAO;AAChB;AAIA,SAAgB,SAAS,GAAG,MAA0B;CACpD,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;ACVA,SAAgB,IAAI,MAAwB;CAC1C,OAAO,KAAK,QAAQ,GAAG,MAAM,IAAI,GAAG,CAAC;AACvC"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/number/_globalAliases.ts","../../src/number/add.ts","../../src/number/compare.ts","../../src/number/decrement.ts","../../src/number/divide.ts","../../src/number/increment.ts","../../src/number/isNaN.ts","../../src/number/isNil.ts","../../src/number/isNotNaN.ts","../../src/number/isNumber.ts","../../src/number/multiply.ts","../../src/number/parseFloat.ts","../../src/number/parseInt.ts","../../src/number/parseIntBase.ts","../../src/number/product.ts","../../src/number/subtract.ts","../../src/number/sum.ts"],"sourcesContent":["/**\n * Number predicates from the global `Number` object: `isFinite`, `isInteger`, and `isSafeInteger`.\n * @function\n *\n * @example\n * ```ts\n * isFinite(42); // true\n * isInteger(3.14); // false\n * isSafeInteger(Number.MAX_SAFE_INTEGER); // true\n * ```\n */\nexport const { isFinite, isInteger, isSafeInteger } = Number;\n\n/**\n * Alias of the built-in number constructor. `new Number() === new Number.Ctor()`\n * @function\n */\nexport const Ctor = Number;\n","import { purry } from '../function/purry';\n\nfunction addImplementation(left: number, right: number): number {\n return left + right;\n}\n\n/**\n * Adds two numbers together.\n *\n * @example\n * ```ts\n * add(1, 2); // 3\n * add(2)(1); // 3\n * ```\n */\nexport function add(right: number): (left: number) => number;\nexport function add(left: number, right: number): number;\nexport function add(...args: unknown[]): unknown {\n return purry(addImplementation, args);\n}\n","import type { Order } from '../order';\nimport { eq, gt, lt } from '../order';\n\n/**\n * Compares two numbers and returns their ordering.\n *\n * @example\n * ```ts\n * compare(1, 2); // -1\n * compare(2, 2); // 0\n * compare(3, 2); // 1\n * ```\n */\nexport function compare(left: number, right: number): Order {\n if (left < right) return lt;\n if (left > right) return gt;\n return eq;\n}\n","/**\n * Returns the number decremented by one.\n *\n * @example\n * ```ts\n * decrement(5); // 4\n * ```\n */\nexport function decrement(num: number): number {\n return num - 1;\n}\n","import { purry } from '../function/purry';\n\nfunction divideImplementation(left: number, right: number): number {\n return left / right;\n}\n\n/**\n * Divides one number by another.\n *\n * @example\n * ```ts\n * divide(10, 2); // 5\n * divide(2)(10); // 5\n * ```\n */\nexport function divide(right: number): (left: number) => number;\nexport function divide(left: number, right: number): number;\nexport function divide(...args: unknown[]): unknown {\n return purry(divideImplementation, args);\n}\n","/**\n * Returns the number incremented by one.\n *\n * @example\n * ```ts\n * increment(5); // 6\n * ```\n */\nexport function increment(num: number): number {\n return num + 1;\n}\n","/**\n * Checks whether a number is `NaN`.\n *\n * @example\n * ```ts\n * isNaN(NaN); // true\n * isNaN(0); // false\n * ```\n */\nexport function isNaN(num: number): boolean {\n return Number.isNaN(num);\n}\n","/**\n * Checks whether a value is nullish (`null` or `undefined`).\n *\n * @example\n * ```ts\n * isNil(null); // true\n * isNil(undefined); // true\n * isNil(0); // false\n * ```\n */\nexport function isNil<T>(value: T): value is T & (null | undefined) {\n return value == null;\n}\n","/**\n * Checks whether a number is not `NaN`.\n *\n * @example\n * ```ts\n * isNotNaN(0); // true\n * isNotNaN(NaN); // false\n * ```\n */\nexport function isNotNaN(num: number): boolean {\n return !Number.isNaN(num);\n}\n","import type { NarrowedTo } from '../types';\n\n/**\n * Checks whether a value is a primitive `number`.\n *\n * @example\n * ```ts\n * isNumber(1); // true\n * isNumber(Infinity); // true\n * isNumber(NaN); // true\n * isNumber('1'); // false\n * ```\n */\nexport function isNumber<T>(data: T | number): data is NarrowedTo<T, number> {\n return typeof data === 'number';\n}\n","import { purry } from '../function/purry';\n\nfunction multiplyImplementation(left: number, right: number): number {\n return left * right;\n}\n\n/**\n * Multiplies two numbers together.\n *\n * @example\n * ```ts\n * multiply(3, 4); // 12\n * multiply(4)(3); // 12\n * ```\n */\nexport function multiply(right: number): (left: number) => number;\nexport function multiply(left: number, right: number): number;\nexport function multiply(...args: unknown[]): unknown {\n return purry(multiplyImplementation, args);\n}\n","import { NaNError } from '../errors';\n\n/**\n * Parses a floating-point number from a string.\n * Returns a NaN error when the input is not a valid number.\n *\n * @example\n * ```ts\n * parseFloat('3.14'); // 3.14\n * parseFloat('abc'); // NaNError\n * ```\n */\nexport function parseFloat(data: string): NaNError | number {\n const num = Number.parseFloat(data);\n\n if (Number.isNaN(num)) {\n return new NaNError(`Num.parseFloat() :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n","import { NaNError } from '../errors';\n\n/**\n * Parses a base-10 integer from a string.\n * Returns a NaN error when the input is not a valid integer.\n *\n * @example\n * ```ts\n * parseInt('42'); // 42\n * parseInt('abc'); // NaNError\n * ```\n */\nexport function parseInt(data: string): NaNError | number {\n const num = Number.parseInt(data, 10);\n\n if (Number.isNaN(num)) {\n return new NaNError(`Num.parseInt() :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n","import { NaNError } from '../errors';\nimport { purry } from '../function/purry';\n\nfunction parseIntBaseImplementation(data: string, radix: number): number {\n if (typeof radix !== 'number') {\n throw new NaNError(`Num.parseFloat(_, radix) :: \"${data}\" must be number`);\n }\n\n const num = Number.parseInt(data, radix);\n\n if (Number.isNaN(num)) {\n throw new NaNError(`Num.parseFloat(data, _) :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n\n/**\n * Parses an integer from a string in the given radix.\n * Throws a NaN error when the radix is invalid or parsing fails.\n *\n * @example\n * ```ts\n * parseIntBase('ff', 16); // 255\n * parseIntBase(16)('ff'); // 255\n * ```\n */\nexport function parseIntBase(radix: number): (data: string) => number;\nexport function parseIntBase(data: string, radix: number): number;\nexport function parseIntBase(...args: unknown[]): unknown {\n return purry(parseIntBaseImplementation, args);\n}\n","/**\n * Multiplies all numbers in an array.\n *\n * @example\n * ```ts\n * product([2, 3, 4]); // 24\n * product([]); // 1\n * ```\n */\nexport function product(data: number[]): number {\n return data.reduce((a, b) => a * b, 1);\n}\n","import { purry } from '../function/purry';\n\nfunction subtractImplementation(left: number, right: number): number {\n return left - right;\n}\n\n/**\n * Subtracts one number from another.\n *\n * @example\n * ```ts\n * subtract(10, 3); // 7\n * subtract(3)(10); // 7\n * ```\n */\nexport function subtract(right: number): (left: number) => number;\nexport function subtract(left: number, right: number): number;\nexport function subtract(...args: unknown[]): unknown {\n return purry(subtractImplementation, args);\n}\n","/**\n * Sums all numbers in an array.\n *\n * @example\n * ```ts\n * sum([1, 2, 3]); // 6\n * sum([]); // 0\n * ```\n */\nexport function sum(data: number[]): number {\n return data.reduce((a, b) => a + b, 0);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAa,EAAE,UAAU,WAAW,kBAAkB;;;;;AAMtD,MAAa,OAAO;;;ACfpB,SAAS,kBAAkB,MAAc,OAAuB;CAC9D,OAAO,OAAO;AAChB;AAaA,SAAgB,IAAI,GAAG,MAA0B;CAC/C,OAAO,MAAM,mBAAmB,IAAI;AACtC;;;;;;;;;;;;;ACNA,SAAgB,QAAQ,MAAc,OAAsB;CAC1D,IAAI,OAAO,OAAO,OAAA;CAClB,IAAI,OAAO,OAAO,OAAA;CAClB,OAAA;AACF;;;;;;;;;;;ACTA,SAAgB,UAAU,KAAqB;CAC7C,OAAO,MAAM;AACf;;;ACRA,SAAS,qBAAqB,MAAc,OAAuB;CACjE,OAAO,OAAO;AAChB;AAaA,SAAgB,OAAO,GAAG,MAA0B;CAClD,OAAO,MAAM,sBAAsB,IAAI;AACzC;;;;;;;;;;;ACXA,SAAgB,UAAU,KAAqB;CAC7C,OAAO,MAAM;AACf;;;;;;;;;;;;ACDA,SAAgB,MAAM,KAAsB;CAC1C,OAAO,OAAO,MAAM,GAAG;AACzB;;;;;;;;;;;;;ACDA,SAAgB,MAAS,OAA2C;CAClE,OAAO,SAAS;AAClB;;;;;;;;;;;;ACHA,SAAgB,SAAS,KAAsB;CAC7C,OAAO,CAAC,OAAO,MAAM,GAAG;AAC1B;;;;;;;;;;;;;;ACEA,SAAgB,SAAY,MAAiD;CAC3E,OAAO,OAAO,SAAS;AACzB;;;ACbA,SAAS,uBAAuB,MAAc,OAAuB;CACnE,OAAO,OAAO;AAChB;AAaA,SAAgB,SAAS,GAAG,MAA0B;CACpD,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;;;;;;;;;;;ACPA,SAAgB,WAAW,MAAiC;CAC1D,MAAM,MAAM,OAAO,WAAW,IAAI;CAElC,IAAI,OAAO,MAAM,GAAG,GAClB,OAAO,IAAI,SAAS,wBAAwB,KAAK,SAAS;CAG5D,OAAO;AACT;;;;;;;;;;;;;ACRA,SAAgB,SAAS,MAAiC;CACxD,MAAM,MAAM,OAAO,SAAS,MAAM,EAAE;CAEpC,IAAI,OAAO,MAAM,GAAG,GAClB,OAAO,IAAI,SAAS,sBAAsB,KAAK,SAAS;CAG1D,OAAO;AACT;;;ACjBA,SAAS,2BAA2B,MAAc,OAAuB;CACvE,IAAI,OAAO,UAAU,UACnB,MAAM,IAAI,SAAS,gCAAgC,KAAK,iBAAiB;CAG3E,MAAM,MAAM,OAAO,SAAS,MAAM,KAAK;CAEvC,IAAI,OAAO,MAAM,GAAG,GAClB,MAAM,IAAI,SAAS,+BAA+B,KAAK,SAAS;CAGlE,OAAO;AACT;AAcA,SAAgB,aAAa,GAAG,MAA0B;CACxD,OAAO,MAAM,4BAA4B,IAAI;AAC/C;;;;;;;;;;;;ACtBA,SAAgB,QAAQ,MAAwB;CAC9C,OAAO,KAAK,QAAQ,GAAG,MAAM,IAAI,GAAG,CAAC;AACvC;;;ACTA,SAAS,uBAAuB,MAAc,OAAuB;CACnE,OAAO,OAAO;AAChB;AAaA,SAAgB,SAAS,GAAG,MAA0B;CACpD,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;;;;;;;;;;ACVA,SAAgB,IAAI,MAAwB;CAC1C,OAAO,KAAK,QAAQ,GAAG,MAAM,IAAI,GAAG,CAAC;AACvC"}
@@ -1,12 +1,64 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_purry = require("../purry-B2_0DGLV.cjs");
3
- require("../function-CB82a2GS.cjs");
4
- const require_get = require("../get-yrs1Kqho.cjs");
2
+ require("../function-DYPifnmg.cjs");
3
+ const require_purry = require("../purry-Dqp_F64t.cjs");
4
+ const require_get = require("../get-1kqkxPFX.cjs");
5
5
  //#region src/object/_globalAliases.ts
6
- const { fromEntries, hasOwn, is, keys, values } = Object;
7
6
  /**
8
- * @category Object
7
+ * Creates an object from an iterable of key-value pairs.
9
8
  * @function
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * fromEntries([['a', 1], ['b', 2]]); // { a: 1, b: 2 }
13
+ * ```
14
+ */
15
+ const fromEntries = Object.fromEntries;
16
+ /**
17
+ * Checks whether an object has the specified property as its own property.
18
+ * @function
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * hasOwn({ a: 1 }, 'a'); // true
23
+ * hasOwn({ a: 1 }, 'toString'); // false
24
+ * ```
25
+ */
26
+ const hasOwn = Object.hasOwn;
27
+ /**
28
+ * Determines whether two values are the same value.
29
+ * @function
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * is(NaN, NaN); // true
34
+ * is(0, -0); // false
35
+ * ```
36
+ */
37
+ const is = Object.is;
38
+ /**
39
+ * Returns an array of an object's own enumerable string-keyed property names.
40
+ * @function
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * keys({ a: 1, b: 2 }); // ['a', 'b']
45
+ * ```
46
+ */
47
+ const keys = Object.keys;
48
+ /**
49
+ * Returns an array of an object's own enumerable property values.
50
+ * @function
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * values({ a: 1, b: 2 }); // [1, 2]
55
+ * ```
56
+ */
57
+ const values = Object.values;
58
+ /**
59
+ * Returns an array of an object's own enumerable string-keyed property key-value pairs.
60
+ * @function
61
+ *
10
62
  * @example
11
63
  * ```ts
12
64
  * entries({ a: 1, b: 2 }); // [['a', 1], ['b', 2]]
@@ -16,7 +68,12 @@ const entries = Object.entries;
16
68
  //#endregion
17
69
  //#region src/object/clone.ts
18
70
  /**
19
- * Alias of structuredClone without the optional second argument
71
+ * Creates a deep clone of a value using `structuredClone`.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * clone({ a: 1, b: { c: 2 } }); // { a: 1, b: { c: 2 } }
76
+ * ```
20
77
  */
21
78
  function clone(data) {
22
79
  return globalThis.structuredClone(data);
@@ -103,8 +160,55 @@ function mergeLeftImplementation(left, right) {
103
160
  function mergeLeft(...args) {
104
161
  return require_purry.purry(mergeLeftImplementation, args);
105
162
  }
163
+ /**
164
+ * Like `merge`, but gives precedence to properties from the left object.
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * merge.left({ a: 1 }, { b: 2 }); // { a: 1, b: 2 }
169
+ * merge.left({ b: 3 })({ a: 1, b: 2 }); // { a: 1, b: 3 }
170
+ * ```
171
+ */
106
172
  merge.left = mergeLeft;
107
173
  //#endregion
174
+ //#region src/object/mergeDeep.ts
175
+ function isObjectType(data) {
176
+ return typeof data === "object" && data !== null;
177
+ }
178
+ function mergeDeepImplementation(left, right) {
179
+ const nextObj = {
180
+ ...right,
181
+ ...left
182
+ };
183
+ for (const key of Object.keys(left)) {
184
+ if (!Object.hasOwn(right, key)) continue;
185
+ const leftVal = left[key];
186
+ const rightVal = right[key];
187
+ if (isObjectType(leftVal) && isObjectType(rightVal) && !Array.isArray(leftVal) && !Array.isArray(rightVal)) nextObj[key] = mergeDeepImplementation(leftVal, rightVal);
188
+ else nextObj[key] = right[key];
189
+ }
190
+ return nextObj;
191
+ }
192
+ function mergeDeep(...args) {
193
+ return require_purry.purry(mergeDeepImplementation, args);
194
+ }
195
+ function mergeDeepLeftImplementation(left, right) {
196
+ return mergeDeepImplementation(right, left);
197
+ }
198
+ function mergeDeepLeft(...args) {
199
+ return require_purry.purry(mergeDeepLeftImplementation, args);
200
+ }
201
+ /**
202
+ * Like `mergeDeep`, but gives precedence to properties from the left object.
203
+ *
204
+ * @example
205
+ * ```ts
206
+ * mergeDeep.left({ a: { x: 1 } }, { a: { y: 2 }, b: 3 }); // { a: { x: 1, y: 2 }, b: 3 }
207
+ * mergeDeep.left({ b: 3 })({ a: { x: 1 }, b: { y: 2 } }); // { a: { x: 1 }, b: 3 }
208
+ * ```
209
+ */
210
+ mergeDeep.left = mergeDeepLeft;
211
+ //#endregion
108
212
  //#region src/object/omit.ts
109
213
  function omitImplementation(data, keys) {
110
214
  const keysSet = new Set(keys);
@@ -171,7 +275,6 @@ exports.evolve = evolve;
171
275
  exports.forEach = forEach;
172
276
  exports.fromEntries = fromEntries;
173
277
  exports.get = require_get.get;
174
- exports.getAssert = require_get.getAssert;
175
278
  exports.groupBy = groupBy;
176
279
  exports.hasOwn = hasOwn;
177
280
  exports.indexBy = indexBy;
@@ -179,6 +282,7 @@ exports.is = is;
179
282
  exports.keys = keys;
180
283
  exports.map = map;
181
284
  exports.merge = merge;
285
+ exports.mergeDeep = mergeDeep;
182
286
  exports.mergeLeft = mergeLeft;
183
287
  exports.omit = omit;
184
288
  exports.pick = pick;