@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.
- package/dist/array/index.cjs +239 -37
- package/dist/array/index.cjs.map +1 -1
- package/dist/array/index.d.cts +437 -36
- package/dist/array/index.d.cts.map +1 -1
- package/dist/array/index.d.mts +437 -36
- package/dist/array/index.d.mts.map +1 -1
- package/dist/array/index.mjs +225 -22
- package/dist/array/index.mjs.map +1 -1
- package/dist/function/index.cjs +4 -2
- package/dist/function/index.d.cts +128 -13
- package/dist/function/index.d.cts.map +1 -1
- package/dist/function/index.d.mts +128 -13
- package/dist/function/index.d.mts.map +1 -1
- package/dist/function/index.mjs +3 -3
- package/dist/{function-DnI2v0p3.mjs → function-CYHPhQCQ.mjs} +84 -6
- package/dist/function-CYHPhQCQ.mjs.map +1 -0
- package/dist/{function-CB82a2GS.cjs → function-DYPifnmg.cjs} +95 -5
- package/dist/function-DYPifnmg.cjs.map +1 -0
- package/dist/{get-yrs1Kqho.cjs → get-1kqkxPFX.cjs} +20 -8
- package/dist/get-1kqkxPFX.cjs.map +1 -0
- package/dist/{get-CWL_cu6G.mjs → get-Dv6ejLZg.mjs} +21 -3
- package/dist/get-Dv6ejLZg.mjs.map +1 -0
- package/dist/guard/index.cjs +5 -12
- package/dist/guard/index.cjs.map +1 -1
- package/dist/guard/index.d.cts +18 -17
- package/dist/guard/index.d.cts.map +1 -1
- package/dist/guard/index.d.mts +18 -17
- package/dist/guard/index.d.mts.map +1 -1
- package/dist/guard/index.mjs +4 -12
- package/dist/guard/index.mjs.map +1 -1
- package/dist/index-MbdqaUt1.d.cts +54 -0
- package/dist/index-MbdqaUt1.d.cts.map +1 -0
- package/dist/index-k-paNOu4.d.mts +54 -0
- package/dist/index-k-paNOu4.d.mts.map +1 -0
- package/dist/iterator/index.cjs +72 -26
- package/dist/iterator/index.cjs.map +1 -1
- package/dist/iterator/index.d.cts +157 -5
- package/dist/iterator/index.d.cts.map +1 -1
- package/dist/iterator/index.d.mts +157 -5
- package/dist/iterator/index.d.mts.map +1 -1
- package/dist/iterator/index.mjs +66 -24
- package/dist/iterator/index.mjs.map +1 -1
- package/dist/lens/index.cjs +3 -3
- package/dist/lens/index.cjs.map +1 -1
- package/dist/lens/index.mjs +3 -3
- package/dist/lens/index.mjs.map +1 -1
- package/dist/map/index.cjs +88 -1
- package/dist/map/index.cjs.map +1 -1
- package/dist/map/index.d.cts +130 -2
- package/dist/map/index.d.cts.map +1 -1
- package/dist/map/index.d.mts +130 -2
- package/dist/map/index.d.mts.map +1 -1
- package/dist/map/index.mjs +86 -2
- package/dist/map/index.mjs.map +1 -1
- package/dist/number/index.cjs +91 -18
- package/dist/number/index.cjs.map +1 -1
- package/dist/number/index.d.cts +134 -19
- package/dist/number/index.d.cts.map +1 -1
- package/dist/number/index.d.mts +134 -19
- package/dist/number/index.d.mts.map +1 -1
- package/dist/number/index.mjs +91 -18
- package/dist/number/index.mjs.map +1 -1
- package/dist/object/index.cjs +111 -7
- package/dist/object/index.cjs.map +1 -1
- package/dist/object/index.d.cts +186 -26
- package/dist/object/index.d.cts.map +1 -1
- package/dist/object/index.d.mts +186 -26
- package/dist/object/index.d.mts.map +1 -1
- package/dist/object/index.mjs +111 -7
- package/dist/object/index.mjs.map +1 -1
- package/dist/orNull-CJNrTjhQ.cjs +45 -0
- package/dist/orNull-CJNrTjhQ.cjs.map +1 -0
- package/dist/orNull-EeXiCxD4.mjs +34 -0
- package/dist/orNull-EeXiCxD4.mjs.map +1 -0
- package/dist/order/index.cjs +22 -1
- package/dist/order/index.cjs.map +1 -1
- package/dist/order/index.d.cts +2 -2
- package/dist/order/index.d.mts +2 -2
- package/dist/order/index.mjs +22 -1
- package/dist/order/index.mjs.map +1 -1
- package/dist/{order.constants-BWSCg3C7.d.cts → order.constants-DpGY-EDp.d.cts} +4 -1
- package/dist/order.constants-DpGY-EDp.d.cts.map +1 -0
- package/dist/{order.constants-BWSCg3C7.d.mts → order.constants-DpGY-EDp.d.mts} +4 -1
- package/dist/order.constants-DpGY-EDp.d.mts.map +1 -0
- package/dist/purry-DXnhXie9.mjs +22 -0
- package/dist/purry-DXnhXie9.mjs.map +1 -0
- package/dist/purry-Dqp_F64t.cjs +27 -0
- package/dist/purry-Dqp_F64t.cjs.map +1 -0
- package/dist/set/index.cjs +59 -1
- package/dist/set/index.cjs.map +1 -1
- package/dist/set/index.d.cts +151 -2
- package/dist/set/index.d.cts.map +1 -1
- package/dist/set/index.d.mts +151 -2
- package/dist/set/index.d.mts.map +1 -1
- package/dist/set/index.mjs +59 -2
- package/dist/set/index.mjs.map +1 -1
- package/dist/string/index.cjs +289 -15
- package/dist/string/index.cjs.map +1 -1
- package/dist/string/index.d.cts +406 -1
- package/dist/string/index.d.cts.map +1 -1
- package/dist/string/index.d.mts +406 -1
- package/dist/string/index.d.mts.map +1 -1
- package/dist/string/index.mjs +271 -4
- package/dist/string/index.mjs.map +1 -1
- package/dist/tuple/index.cjs +20 -21
- package/dist/tuple/index.cjs.map +1 -1
- package/dist/tuple/index.d.cts +27 -58
- package/dist/tuple/index.d.cts.map +1 -1
- package/dist/tuple/index.d.mts +27 -58
- package/dist/tuple/index.d.mts.map +1 -1
- package/dist/tuple/index.mjs +20 -22
- package/dist/tuple/index.mjs.map +1 -1
- package/package.json +55 -127
- package/dist/function-CB82a2GS.cjs.map +0 -1
- package/dist/function-DnI2v0p3.mjs.map +0 -1
- package/dist/get-CWL_cu6G.mjs.map +0 -1
- package/dist/get-yrs1Kqho.cjs.map +0 -1
- package/dist/index-BJlKyBJH.d.cts +0 -18
- package/dist/index-BJlKyBJH.d.cts.map +0 -1
- package/dist/index-DGrnGMDt.d.mts +0 -18
- package/dist/index-DGrnGMDt.d.mts.map +0 -1
- package/dist/isNotNil-DrF-ohem.cjs +0 -28
- package/dist/isNotNil-DrF-ohem.cjs.map +0 -1
- package/dist/isNotNil-R5f1hC53.mjs +0 -23
- package/dist/isNotNil-R5f1hC53.mjs.map +0 -1
- package/dist/orThrow-V91Jw2lF.mjs +0 -15
- package/dist/orThrow-V91Jw2lF.mjs.map +0 -1
- package/dist/orThrow-ejzcQYAI.cjs +0 -20
- package/dist/orThrow-ejzcQYAI.cjs.map +0 -1
- package/dist/order.constants-BWSCg3C7.d.cts.map +0 -1
- package/dist/order.constants-BWSCg3C7.d.mts.map +0 -1
- package/dist/purry-B2_0DGLV.cjs +0 -28
- package/dist/purry-B2_0DGLV.cjs.map +0 -1
- package/dist/purry-BOWmqwDB.mjs +0 -23
- package/dist/purry-BOWmqwDB.mjs.map +0 -1
package/dist/number/index.d.mts
CHANGED
|
@@ -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-
|
|
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
|
-
|
|
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
|
-
* @
|
|
30
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
55
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
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 {
|
|
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":"
|
|
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"}
|
package/dist/number/index.mjs
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
|
-
import { t as purry } from "../purry-
|
|
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
|
-
|
|
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
|
-
* @
|
|
45
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
74
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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 {
|
|
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":["
|
|
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"}
|
package/dist/object/index.cjs
CHANGED
|
@@ -1,12 +1,64 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
|
|
3
|
-
require("../
|
|
4
|
-
const require_get = require("../get-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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;
|