ts-data-forge 11.0.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/number/branded-types/finite-number.d.mts +47 -61
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +37 -41
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +40 -46
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +29 -31
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +71 -59
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +56 -47
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +71 -59
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +56 -47
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +76 -60
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.mjs +62 -49
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +66 -49
- package/dist/number/branded-types/negative-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-int.mjs +48 -39
- package/dist/number/branded-types/negative-int.mjs.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +64 -57
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-safe-int.mjs +49 -44
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +80 -65
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +65 -53
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +71 -58
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +55 -45
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +71 -59
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +55 -46
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +70 -55
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.mjs +55 -43
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +46 -146
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-int.mjs +33 -108
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +62 -54
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.mjs +46 -41
- package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +51 -38
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +31 -27
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +59 -54
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +44 -41
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +59 -55
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +44 -42
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +60 -55
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +44 -42
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +59 -54
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +43 -41
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +59 -54
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +43 -41
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +82 -64
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +67 -52
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +53 -70
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +42 -52
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +68 -58
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +52 -45
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +68 -58
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +52 -45
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +72 -61
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +56 -48
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +68 -58
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +52 -45
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +68 -59
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +52 -46
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +52 -66
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +45 -47
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +68 -58
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +53 -46
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +72 -55
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +52 -45
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +66 -59
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +51 -45
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +66 -57
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +50 -45
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +62 -66
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +57 -51
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +66 -59
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +57 -51
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +9 -9
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +7 -7
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/package.json +2 -1
- package/src/number/branded-types/finite-number.mts +47 -61
- package/src/number/branded-types/int.mts +40 -46
- package/src/number/branded-types/int16.mts +72 -60
- package/src/number/branded-types/int32.mts +72 -60
- package/src/number/branded-types/negative-finite-number.mts +78 -71
- package/src/number/branded-types/negative-finite-number.test.mts +4 -4
- package/src/number/branded-types/negative-int.mts +68 -60
- package/src/number/branded-types/negative-int.test.mts +5 -5
- package/src/number/branded-types/negative-safe-int.mts +66 -68
- package/src/number/branded-types/negative-safe-int.test.mts +4 -4
- package/src/number/branded-types/non-negative-finite-number.mts +81 -66
- package/src/number/branded-types/non-negative-int16.mts +72 -59
- package/src/number/branded-types/non-negative-int32.mts +72 -60
- package/src/number/branded-types/non-positive-finite-number.mts +71 -56
- package/src/number/branded-types/non-positive-finite-number.test.mts +7 -7
- package/src/number/branded-types/non-positive-int.mts +47 -147
- package/src/number/branded-types/non-positive-int.test.mts +7 -7
- package/src/number/branded-types/non-positive-safe-int.mts +63 -55
- package/src/number/branded-types/non-positive-safe-int.test.mts +7 -7
- package/src/number/branded-types/non-zero-finite-number.mts +62 -51
- package/src/number/branded-types/non-zero-int.mts +51 -38
- package/src/number/branded-types/non-zero-int16.mts +60 -55
- package/src/number/branded-types/non-zero-int32.mts +60 -56
- package/src/number/branded-types/non-zero-safe-int.mts +61 -56
- package/src/number/branded-types/non-zero-uint16.mts +60 -55
- package/src/number/branded-types/non-zero-uint32.mts +60 -55
- package/src/number/branded-types/positive-finite-number.mts +83 -65
- package/src/number/branded-types/positive-int.mts +54 -71
- package/src/number/branded-types/positive-int16.mts +69 -59
- package/src/number/branded-types/positive-int32.mts +69 -59
- package/src/number/branded-types/positive-safe-int.mts +73 -62
- package/src/number/branded-types/positive-uint16.mts +69 -59
- package/src/number/branded-types/positive-uint32.mts +69 -60
- package/src/number/branded-types/safe-int.mts +53 -67
- package/src/number/branded-types/safe-uint.mts +69 -59
- package/src/number/branded-types/uint.mts +73 -56
- package/src/number/branded-types/uint16.mts +67 -60
- package/src/number/branded-types/uint32.mts +67 -58
- package/src/number/enum/int8.mts +70 -73
- package/src/number/enum/int8.test.mts +7 -4
- package/src/number/enum/uint8.mts +74 -66
- package/src/number/enum/uint8.test.mts +7 -4
- package/src/number/refined-number-utils.mts +22 -19
|
@@ -14,8 +14,8 @@ const {
|
|
|
14
14
|
abs,
|
|
15
15
|
add,
|
|
16
16
|
castType,
|
|
17
|
-
clamp,
|
|
18
17
|
div,
|
|
18
|
+
fromNumber,
|
|
19
19
|
is,
|
|
20
20
|
max: max_,
|
|
21
21
|
min: min_,
|
|
@@ -35,137 +35,149 @@ const {
|
|
|
35
35
|
} as const);
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
* 2^15)).
|
|
38
|
+
* Type guard that checks if a value is an integer in [-2^15, 2^15).
|
|
40
39
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* Returns `true` for an integer in [-2^15, 2^15) — a value with no fractional
|
|
41
|
+
* component.
|
|
42
|
+
*
|
|
43
|
+
* @param value - The value to check
|
|
44
|
+
* @returns `true` if the value is an integer in [-2^15, 2^15), `false` otherwise
|
|
43
45
|
*/
|
|
44
46
|
export const isInt16 = is;
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
|
-
* Casts a number to
|
|
49
|
+
* Casts a `number` to the `Int16` branded type.
|
|
50
|
+
*
|
|
51
|
+
* Validates that the value is an integer in [-2^15, 2^15) and returns it with
|
|
52
|
+
* the `Int16` brand. Throws a `TypeError` otherwise.
|
|
48
53
|
*
|
|
49
|
-
* @param value The value to cast
|
|
50
|
-
* @returns The value as an Int16
|
|
51
|
-
* @throws {TypeError} If the value is not an integer in [-2^15, 2^15)
|
|
54
|
+
* @param value - The value to cast
|
|
55
|
+
* @returns The value as an `Int16`
|
|
56
|
+
* @throws {TypeError} If the value is not an integer in [-2^15, 2^15)
|
|
52
57
|
*/
|
|
53
58
|
export const asInt16 = castType;
|
|
54
59
|
|
|
55
60
|
/**
|
|
56
|
-
* Namespace providing type-safe
|
|
57
|
-
* integers.
|
|
61
|
+
* Namespace providing type-safe operations for the `Int16` branded type.
|
|
58
62
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* constraint.
|
|
63
|
+
* The `Int16` type represents an integer in [-2^15, 2^15). Division (`div`)
|
|
64
|
+
* uses floor division.
|
|
62
65
|
*/
|
|
63
66
|
export const Int16 = {
|
|
64
67
|
/**
|
|
65
|
-
* Type guard
|
|
68
|
+
* Type guard that checks if a value is an integer in [-2^15, 2^15).
|
|
66
69
|
*
|
|
67
|
-
* @param value The value to check
|
|
68
|
-
* @returns `true` if the value is
|
|
70
|
+
* @param value - The value to check
|
|
71
|
+
* @returns `true` if the value is an integer in [-2^15, 2^15), `false` otherwise
|
|
72
|
+
* @see {@link isInt16} for usage examples
|
|
69
73
|
*/
|
|
70
74
|
is,
|
|
71
75
|
|
|
72
76
|
/**
|
|
73
|
-
* The
|
|
74
|
-
*
|
|
75
|
-
* @readonly
|
|
77
|
+
* The smallest value representable as `Int16` (the lower saturation target of
|
|
78
|
+
* `fromNumber`).
|
|
76
79
|
*/
|
|
77
80
|
MIN_VALUE,
|
|
78
81
|
|
|
79
82
|
/**
|
|
80
|
-
* The
|
|
81
|
-
*
|
|
82
|
-
* @readonly
|
|
83
|
+
* The largest value representable as `Int16` (the upper saturation target of
|
|
84
|
+
* `fromNumber`).
|
|
83
85
|
*/
|
|
84
86
|
MAX_VALUE,
|
|
85
87
|
|
|
86
88
|
/**
|
|
87
|
-
* Returns the absolute value of
|
|
89
|
+
* Returns the absolute value of an integer in [-2^15, 2^15).
|
|
88
90
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
+
* The result is non-negative and keeps the `Int16` brand.
|
|
92
|
+
*
|
|
93
|
+
* @param a - The integer value
|
|
94
|
+
* @returns The absolute value as a non-negative `Int16`
|
|
91
95
|
*/
|
|
92
96
|
abs,
|
|
93
97
|
|
|
94
98
|
/**
|
|
95
|
-
* Returns the
|
|
99
|
+
* Returns the smallest of the given integers.
|
|
96
100
|
*
|
|
97
|
-
* @param
|
|
98
|
-
* @
|
|
99
|
-
* @returns The minimum value as an Int16.
|
|
101
|
+
* @param values - The integers to compare (at least one required)
|
|
102
|
+
* @returns The smallest value as an `Int16`
|
|
100
103
|
*/
|
|
101
104
|
min: min_,
|
|
102
105
|
|
|
103
106
|
/**
|
|
104
|
-
* Returns the
|
|
107
|
+
* Returns the largest of the given integers.
|
|
105
108
|
*
|
|
106
|
-
* @param
|
|
107
|
-
* @
|
|
108
|
-
* @returns The maximum value as an Int16.
|
|
109
|
+
* @param values - The integers to compare (at least one required)
|
|
110
|
+
* @returns The largest value as an `Int16`
|
|
109
111
|
*/
|
|
110
112
|
max: max_,
|
|
111
113
|
|
|
112
114
|
/**
|
|
113
|
-
*
|
|
115
|
+
* Converts an arbitrary `number` into an `Int16`, rounding to the nearest
|
|
116
|
+
* integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.
|
|
117
|
+
*
|
|
118
|
+
* Unlike `asInt16`, this is total: out-of-range inputs are clamped to the
|
|
119
|
+
* nearest representable `Int16` instead of throwing.
|
|
114
120
|
*
|
|
115
|
-
* @param value The
|
|
116
|
-
* @returns The value
|
|
121
|
+
* @param value - The value to convert
|
|
122
|
+
* @returns The value as an `Int16`
|
|
117
123
|
*/
|
|
118
|
-
|
|
124
|
+
fromNumber,
|
|
119
125
|
|
|
120
126
|
/**
|
|
121
|
-
* Generates a random Int16
|
|
127
|
+
* Generates a random `Int16` within the given range.
|
|
128
|
+
*
|
|
129
|
+
* The range is inclusive on both ends.
|
|
122
130
|
*
|
|
123
|
-
* @
|
|
131
|
+
* @param min - The minimum value (inclusive)
|
|
132
|
+
* @param max - The maximum value (inclusive)
|
|
133
|
+
* @returns A random `Int16` in `[min, max]`
|
|
124
134
|
*/
|
|
125
135
|
random,
|
|
126
136
|
|
|
127
137
|
/**
|
|
128
|
-
* Raises
|
|
138
|
+
* Raises `a` to the power `b`, returning `a ** b` as an `Int16` (floored to
|
|
139
|
+
* an integer).
|
|
129
140
|
*
|
|
130
|
-
* @param a The base
|
|
131
|
-
* @param b The exponent
|
|
132
|
-
* @returns `a ** b`
|
|
141
|
+
* @param a - The base integer
|
|
142
|
+
* @param b - The exponent integer
|
|
143
|
+
* @returns `a ** b` as an `Int16`
|
|
133
144
|
*/
|
|
134
145
|
pow,
|
|
135
146
|
|
|
136
147
|
/**
|
|
137
|
-
* Adds two Int16
|
|
148
|
+
* Adds two integers, returning `a + b` as an `Int16`.
|
|
138
149
|
*
|
|
139
|
-
* @param a The first
|
|
140
|
-
* @param b The second
|
|
141
|
-
* @returns `a
|
|
150
|
+
* @param a - The first integer
|
|
151
|
+
* @param b - The second integer
|
|
152
|
+
* @returns The sum of `a` and `b` as an `Int16`
|
|
142
153
|
*/
|
|
143
154
|
add,
|
|
144
155
|
|
|
145
156
|
/**
|
|
146
|
-
* Subtracts
|
|
157
|
+
* Subtracts two integers, returning `a - b` as an `Int16`.
|
|
147
158
|
*
|
|
148
|
-
* @param a The
|
|
149
|
-
* @param b The
|
|
150
|
-
* @returns `a
|
|
159
|
+
* @param a - The first integer
|
|
160
|
+
* @param b - The second integer
|
|
161
|
+
* @returns The difference of `a` and `b` as an `Int16`
|
|
151
162
|
*/
|
|
152
163
|
sub,
|
|
153
164
|
|
|
154
165
|
/**
|
|
155
|
-
* Multiplies two Int16
|
|
166
|
+
* Multiplies two integers, returning `a * b` as an `Int16`.
|
|
156
167
|
*
|
|
157
|
-
* @param a The first
|
|
158
|
-
* @param b The second
|
|
159
|
-
* @returns `a
|
|
168
|
+
* @param a - The first integer
|
|
169
|
+
* @param b - The second integer
|
|
170
|
+
* @returns The product of `a` and `b` as an `Int16`
|
|
160
171
|
*/
|
|
161
172
|
mul,
|
|
162
173
|
|
|
163
174
|
/**
|
|
164
|
-
* Divides
|
|
175
|
+
* Divides two integers using floor division (`⌊a / b⌋`): the result is `a /
|
|
176
|
+
* b` rounded toward negative infinity, as an `Int16`.
|
|
165
177
|
*
|
|
166
|
-
* @param a The dividend
|
|
167
|
-
* @param b The divisor
|
|
168
|
-
* @returns
|
|
178
|
+
* @param a - The dividend
|
|
179
|
+
* @param b - The divisor (must be non-zero)
|
|
180
|
+
* @returns The floored quotient as an `Int16`
|
|
169
181
|
*/
|
|
170
182
|
div,
|
|
171
183
|
} as const;
|
|
@@ -14,8 +14,8 @@ const {
|
|
|
14
14
|
abs,
|
|
15
15
|
add,
|
|
16
16
|
castType,
|
|
17
|
-
clamp,
|
|
18
17
|
div,
|
|
18
|
+
fromNumber,
|
|
19
19
|
is,
|
|
20
20
|
max: max_,
|
|
21
21
|
min: min_,
|
|
@@ -35,137 +35,149 @@ const {
|
|
|
35
35
|
} as const);
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
* 2^31)).
|
|
38
|
+
* Type guard that checks if a value is an integer in [-2^31, 2^31).
|
|
40
39
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* Returns `true` for an integer in [-2^31, 2^31) — a value with no fractional
|
|
41
|
+
* component.
|
|
42
|
+
*
|
|
43
|
+
* @param value - The value to check
|
|
44
|
+
* @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise
|
|
43
45
|
*/
|
|
44
46
|
export const isInt32 = is;
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
|
-
* Casts a number to
|
|
49
|
+
* Casts a `number` to the `Int32` branded type.
|
|
50
|
+
*
|
|
51
|
+
* Validates that the value is an integer in [-2^31, 2^31) and returns it with
|
|
52
|
+
* the `Int32` brand. Throws a `TypeError` otherwise.
|
|
48
53
|
*
|
|
49
|
-
* @param value The value to cast
|
|
50
|
-
* @returns The value as an Int32
|
|
51
|
-
* @throws {TypeError} If the value is not an integer in [-2^31, 2^31)
|
|
54
|
+
* @param value - The value to cast
|
|
55
|
+
* @returns The value as an `Int32`
|
|
56
|
+
* @throws {TypeError} If the value is not an integer in [-2^31, 2^31)
|
|
52
57
|
*/
|
|
53
58
|
export const asInt32 = castType;
|
|
54
59
|
|
|
55
60
|
/**
|
|
56
|
-
* Namespace providing type-safe
|
|
57
|
-
* integers.
|
|
61
|
+
* Namespace providing type-safe operations for the `Int32` branded type.
|
|
58
62
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* 32-bit signed integer constraint, preventing overflow.
|
|
63
|
+
* The `Int32` type represents an integer in [-2^31, 2^31). Division (`div`)
|
|
64
|
+
* uses floor division.
|
|
62
65
|
*/
|
|
63
66
|
export const Int32 = {
|
|
64
67
|
/**
|
|
65
|
-
* Type guard
|
|
68
|
+
* Type guard that checks if a value is an integer in [-2^31, 2^31).
|
|
66
69
|
*
|
|
67
|
-
* @param value The value to check
|
|
68
|
-
* @returns `true` if the value is
|
|
70
|
+
* @param value - The value to check
|
|
71
|
+
* @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise
|
|
72
|
+
* @see {@link isInt32} for usage examples
|
|
69
73
|
*/
|
|
70
74
|
is,
|
|
71
75
|
|
|
72
76
|
/**
|
|
73
|
-
* The
|
|
74
|
-
*
|
|
75
|
-
* @readonly
|
|
77
|
+
* The smallest value representable as `Int32` (the lower saturation target of
|
|
78
|
+
* `fromNumber`).
|
|
76
79
|
*/
|
|
77
80
|
MIN_VALUE,
|
|
78
81
|
|
|
79
82
|
/**
|
|
80
|
-
* The
|
|
81
|
-
*
|
|
82
|
-
* @readonly
|
|
83
|
+
* The largest value representable as `Int32` (the upper saturation target of
|
|
84
|
+
* `fromNumber`).
|
|
83
85
|
*/
|
|
84
86
|
MAX_VALUE,
|
|
85
87
|
|
|
86
88
|
/**
|
|
87
|
-
* Returns the absolute value of
|
|
89
|
+
* Returns the absolute value of an integer in [-2^31, 2^31).
|
|
88
90
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
+
* The result is non-negative and keeps the `Int32` brand.
|
|
92
|
+
*
|
|
93
|
+
* @param a - The integer value
|
|
94
|
+
* @returns The absolute value as a non-negative `Int32`
|
|
91
95
|
*/
|
|
92
96
|
abs,
|
|
93
97
|
|
|
94
98
|
/**
|
|
95
|
-
* Returns the
|
|
99
|
+
* Returns the smallest of the given integers.
|
|
96
100
|
*
|
|
97
|
-
* @param
|
|
98
|
-
* @
|
|
99
|
-
* @returns The minimum value as an Int32.
|
|
101
|
+
* @param values - The integers to compare (at least one required)
|
|
102
|
+
* @returns The smallest value as an `Int32`
|
|
100
103
|
*/
|
|
101
104
|
min: min_,
|
|
102
105
|
|
|
103
106
|
/**
|
|
104
|
-
* Returns the
|
|
107
|
+
* Returns the largest of the given integers.
|
|
105
108
|
*
|
|
106
|
-
* @param
|
|
107
|
-
* @
|
|
108
|
-
* @returns The maximum value as an Int32.
|
|
109
|
+
* @param values - The integers to compare (at least one required)
|
|
110
|
+
* @returns The largest value as an `Int32`
|
|
109
111
|
*/
|
|
110
112
|
max: max_,
|
|
111
113
|
|
|
112
114
|
/**
|
|
113
|
-
*
|
|
115
|
+
* Converts an arbitrary `number` into an `Int32`, rounding to the nearest
|
|
116
|
+
* integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.
|
|
117
|
+
*
|
|
118
|
+
* Unlike `asInt32`, this is total: out-of-range inputs are clamped to the
|
|
119
|
+
* nearest representable `Int32` instead of throwing.
|
|
114
120
|
*
|
|
115
|
-
* @param value The
|
|
116
|
-
* @returns The value
|
|
121
|
+
* @param value - The value to convert
|
|
122
|
+
* @returns The value as an `Int32`
|
|
117
123
|
*/
|
|
118
|
-
|
|
124
|
+
fromNumber,
|
|
119
125
|
|
|
120
126
|
/**
|
|
121
|
-
* Generates a random Int32
|
|
127
|
+
* Generates a random `Int32` within the given range.
|
|
128
|
+
*
|
|
129
|
+
* The range is inclusive on both ends.
|
|
122
130
|
*
|
|
123
|
-
* @
|
|
131
|
+
* @param min - The minimum value (inclusive)
|
|
132
|
+
* @param max - The maximum value (inclusive)
|
|
133
|
+
* @returns A random `Int32` in `[min, max]`
|
|
124
134
|
*/
|
|
125
135
|
random,
|
|
126
136
|
|
|
127
137
|
/**
|
|
128
|
-
* Raises
|
|
138
|
+
* Raises `a` to the power `b`, returning `a ** b` as an `Int32` (floored to
|
|
139
|
+
* an integer).
|
|
129
140
|
*
|
|
130
|
-
* @param a The base
|
|
131
|
-
* @param b The exponent
|
|
132
|
-
* @returns `a ** b`
|
|
141
|
+
* @param a - The base integer
|
|
142
|
+
* @param b - The exponent integer
|
|
143
|
+
* @returns `a ** b` as an `Int32`
|
|
133
144
|
*/
|
|
134
145
|
pow,
|
|
135
146
|
|
|
136
147
|
/**
|
|
137
|
-
* Adds two Int32
|
|
148
|
+
* Adds two integers, returning `a + b` as an `Int32`.
|
|
138
149
|
*
|
|
139
|
-
* @param a The first
|
|
140
|
-
* @param b The second
|
|
141
|
-
* @returns `a
|
|
150
|
+
* @param a - The first integer
|
|
151
|
+
* @param b - The second integer
|
|
152
|
+
* @returns The sum of `a` and `b` as an `Int32`
|
|
142
153
|
*/
|
|
143
154
|
add,
|
|
144
155
|
|
|
145
156
|
/**
|
|
146
|
-
* Subtracts
|
|
157
|
+
* Subtracts two integers, returning `a - b` as an `Int32`.
|
|
147
158
|
*
|
|
148
|
-
* @param a The
|
|
149
|
-
* @param b The
|
|
150
|
-
* @returns `a
|
|
159
|
+
* @param a - The first integer
|
|
160
|
+
* @param b - The second integer
|
|
161
|
+
* @returns The difference of `a` and `b` as an `Int32`
|
|
151
162
|
*/
|
|
152
163
|
sub,
|
|
153
164
|
|
|
154
165
|
/**
|
|
155
|
-
* Multiplies two Int32
|
|
166
|
+
* Multiplies two integers, returning `a * b` as an `Int32`.
|
|
156
167
|
*
|
|
157
|
-
* @param a The first
|
|
158
|
-
* @param b The second
|
|
159
|
-
* @returns `a
|
|
168
|
+
* @param a - The first integer
|
|
169
|
+
* @param b - The second integer
|
|
170
|
+
* @returns The product of `a` and `b` as an `Int32`
|
|
160
171
|
*/
|
|
161
172
|
mul,
|
|
162
173
|
|
|
163
174
|
/**
|
|
164
|
-
* Divides
|
|
175
|
+
* Divides two integers using floor division (`⌊a / b⌋`): the result is `a /
|
|
176
|
+
* b` rounded toward negative infinity, as an `Int32`.
|
|
165
177
|
*
|
|
166
|
-
* @param a The dividend
|
|
167
|
-
* @param b The divisor
|
|
168
|
-
* @returns
|
|
178
|
+
* @param a - The dividend
|
|
179
|
+
* @param b - The divisor (must be non-zero)
|
|
180
|
+
* @returns The floored quotient as an `Int32`
|
|
169
181
|
*/
|
|
170
182
|
div,
|
|
171
183
|
} as const;
|