ts-data-forge 14.7.0 → 14.8.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 +21 -34
- package/dist/array/impl/array-utils-creation.d.mts +3 -3
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-creation.mjs.map +1 -1
- package/dist/array/impl/array-utils-element-access.d.mts +2 -2
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
- package/dist/array/impl/array-utils-element-access.mjs +1 -1
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
- package/dist/array/impl/array-utils-iterators.d.mts +1 -1
- package/dist/array/impl/array-utils-iterators.d.mts.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts +37 -7
- package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +4 -0
- package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts +9 -9
- package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +1 -1
- package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-tuple-cast.d.mts +28 -8
- package/dist/array/impl/array-utils-length-bounded-tuple-cast.d.mts.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +4 -0
- package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-tuple-guard.d.mts +3 -3
- package/dist/array/impl/array-utils-length-bounded-tuple-guard.d.mts.map +1 -1
- package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +1 -1
- package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs.map +1 -1
- package/dist/array/impl/array-utils-modification.d.mts +2 -2
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.d.mts +2 -2
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.mjs +3 -4
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-search.d.mts +1 -1
- package/dist/array/impl/array-utils-search.d.mts.map +1 -1
- package/dist/array/impl/array-utils-set-op.d.mts +1 -1
- package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
- package/dist/array/impl/array-utils-size.d.mts +2 -2
- package/dist/array/impl/array-utils-size.d.mts.map +1 -1
- package/dist/array/impl/array-utils-slice-clamped.d.mts +1 -1
- package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -1
- package/dist/array/impl/array-utils-slicing.d.mts +2 -2
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
- package/dist/array/impl/array-utils-transformation.d.mts +2 -2
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs +6 -3
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/array/impl/array-utils-validation.d.mts +2 -2
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
- package/dist/collections/imap-mapped.d.mts +2 -2
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +10 -7
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts +2 -2
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +10 -7
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.d.mts +2 -2
- package/dist/collections/iset-mapped.d.mts.map +1 -1
- package/dist/collections/iset-mapped.mjs +6 -3
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.d.mts +2 -2
- package/dist/collections/iset.d.mts.map +1 -1
- package/dist/collections/iset.mjs +5 -5
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.d.mts +1 -1
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/stack.d.mts +1 -1
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/guard/is-non-empty-string.d.mts +1 -1
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/guard/is-primitive.d.mts +1 -1
- package/dist/guard/is-primitive.d.mts.map +1 -1
- package/dist/guard/is-type.d.mts +1 -1
- package/dist/guard/is-type.d.mts.map +1 -1
- package/dist/index.d.mts +2 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.d.mts +5 -4
- package/dist/iterator/range.d.mts.map +1 -1
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts +29 -32
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +1 -4
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +1 -1
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/int.d.mts +2 -2
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int16.d.mts +1 -1
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int32.d.mts +1 -1
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +1 -1
- package/dist/number/branded-types/negative-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +2 -2
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +1 -1
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +1 -1
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +2 -2
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +2 -2
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +1 -1
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.d.mts +2 -2
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +1 -1
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +1 -1
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/enum/int8.d.mts +1 -1
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/uint8.d.mts +1 -1
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/num-arithmetic-types.d.mts +1 -1
- package/dist/number/num-arithmetic-types.d.mts.map +1 -1
- package/dist/number/num.d.mts +3 -3
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/refined-number-utils.d.mts +2 -2
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +6 -4
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts +5 -8
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +16 -13
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/cast-mutable.d.mts +1 -1
- package/dist/others/cast-mutable.d.mts.map +1 -1
- package/dist/others/cast-readonly.d.mts +1 -1
- package/dist/others/cast-readonly.d.mts.map +1 -1
- package/dist/others/debounce-function.d.mts.map +1 -1
- package/dist/others/debounce-function.mjs +1 -5
- package/dist/others/debounce-function.mjs.map +1 -1
- package/dist/others/memoize-function.d.mts +1 -1
- package/dist/others/memoize-function.d.mts.map +1 -1
- package/dist/string/str.d.mts +26 -18
- package/dist/string/str.d.mts.map +1 -1
- package/dist/string/str.mjs +9 -1
- package/dist/string/str.mjs.map +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.d.mts.map +1 -1
- package/package.json +33 -32
- package/src/array/impl/array-utils-creation.mts +24 -22
- package/src/array/impl/array-utils-creation.test.mts +25 -22
- package/src/array/impl/array-utils-element-access.mts +7 -7
- package/src/array/impl/array-utils-element-access.test.mts +2 -2
- package/src/array/impl/array-utils-iterators.mts +1 -1
- package/src/array/impl/array-utils-iterators.test.mts +1 -1
- package/src/array/impl/array-utils-length-bounded-array-cast.mts +43 -13
- package/src/array/impl/array-utils-length-bounded-array-cast.test.mts +6 -6
- package/src/array/impl/array-utils-length-bounded-array-guard.mts +15 -15
- package/src/array/impl/array-utils-length-bounded-array-guard.test.mts +66 -54
- package/src/array/impl/array-utils-length-bounded-tuple-cast.mts +32 -12
- package/src/array/impl/array-utils-length-bounded-tuple-cast.test.mts +10 -10
- package/src/array/impl/array-utils-length-bounded-tuple-guard.mts +8 -8
- package/src/array/impl/array-utils-length-bounded-tuple-guard.test.mts +38 -28
- package/src/array/impl/array-utils-length-constraint-preservation.test.mts +14 -14
- package/src/array/impl/array-utils-modification.mts +12 -12
- package/src/array/impl/array-utils-modification.test.mts +7 -7
- package/src/array/impl/array-utils-overload-type-error.test.mts +1 -1
- package/src/array/impl/array-utils-reducing-value.mts +9 -11
- package/src/array/impl/array-utils-reducing-value.test.mts +2 -2
- package/src/array/impl/array-utils-search.mts +4 -4
- package/src/array/impl/array-utils-search.test.mts +25 -17
- package/src/array/impl/array-utils-set-op.mts +1 -1
- package/src/array/impl/array-utils-shape-invariants.test.mts +8 -8
- package/src/array/impl/array-utils-size.mts +5 -5
- package/src/array/impl/array-utils-slice-clamped.mts +2 -2
- package/src/array/impl/array-utils-slicing.mts +8 -8
- package/src/array/impl/array-utils-slicing.test.mts +1 -1
- package/src/array/impl/array-utils-transformation.mts +26 -24
- package/src/array/impl/array-utils-transformation.test.mts +12 -10
- package/src/array/impl/array-utils-validation.mts +7 -7
- package/src/array/impl/array-utils-validation.test.mts +39 -39
- package/src/array/impl/array.test.mts +1 -1
- package/src/collections/imap-mapped.mts +15 -9
- package/src/collections/imap-mapped.test.mts +1 -1
- package/src/collections/imap.mts +15 -9
- package/src/collections/imap.test.mts +7 -5
- package/src/collections/iset-mapped.mts +14 -8
- package/src/collections/iset.mts +12 -10
- package/src/collections/iset.test.mts +14 -12
- package/src/collections/queue.mts +1 -1
- package/src/collections/stack.mts +1 -1
- package/src/collections/stack.test.mts +8 -6
- package/src/guard/is-error.test.mts +6 -4
- package/src/guard/is-non-empty-string.mts +1 -1
- package/src/guard/is-non-empty-string.test.mts +15 -11
- package/src/guard/is-primitive.mts +1 -1
- package/src/guard/is-type.mts +1 -1
- package/src/guard/is-type.test.mts +87 -59
- package/src/index.mts +2 -0
- package/src/iterator/range.mts +5 -9
- package/src/iterator/range.test.mts +29 -0
- package/src/json/json.mts +32 -35
- package/src/json/json.test.mts +106 -89
- package/src/number/branded-types/finite-number.mts +4 -4
- package/src/number/branded-types/int.mts +2 -2
- package/src/number/branded-types/int16.mts +1 -1
- package/src/number/branded-types/int32.mts +1 -1
- package/src/number/branded-types/negative-finite-number.mts +1 -1
- package/src/number/branded-types/negative-finite-number.test.mts +4 -4
- package/src/number/branded-types/negative-int.mts +3 -3
- package/src/number/branded-types/negative-int.test.mts +1 -1
- package/src/number/branded-types/negative-safe-int.mts +3 -3
- package/src/number/branded-types/negative-safe-int.test.mts +1 -1
- package/src/number/branded-types/non-negative-finite-number.mts +3 -3
- package/src/number/branded-types/non-negative-int16.mts +1 -1
- package/src/number/branded-types/non-negative-int32.mts +1 -1
- package/src/number/branded-types/non-positive-finite-number.mts +1 -1
- package/src/number/branded-types/non-positive-int.mts +1 -1
- package/src/number/branded-types/non-positive-safe-int.mts +1 -1
- package/src/number/branded-types/non-zero-finite-number.mts +5 -5
- package/src/number/branded-types/non-zero-int.mts +1 -1
- package/src/number/branded-types/non-zero-int16.mts +1 -1
- package/src/number/branded-types/non-zero-int32.mts +1 -1
- package/src/number/branded-types/non-zero-safe-int.mts +4 -4
- package/src/number/branded-types/non-zero-uint16.mts +1 -1
- package/src/number/branded-types/non-zero-uint32.mts +1 -1
- package/src/number/branded-types/positive-finite-number.mts +4 -4
- package/src/number/branded-types/positive-int.mts +2 -2
- package/src/number/branded-types/positive-int16.mts +1 -1
- package/src/number/branded-types/positive-int32.mts +1 -1
- package/src/number/branded-types/positive-safe-int.mts +4 -4
- package/src/number/branded-types/positive-uint16.mts +1 -1
- package/src/number/branded-types/positive-uint32.mts +1 -1
- package/src/number/branded-types/safe-int.mts +2 -5
- package/src/number/branded-types/safe-uint.mts +1 -1
- package/src/number/branded-types/uint.mts +2 -2
- package/src/number/branded-types/uint16.mts +1 -1
- package/src/number/branded-types/uint32.mts +1 -1
- package/src/number/enum/int8.mts +5 -5
- package/src/number/enum/uint8.mts +4 -4
- package/src/number/num-arithmetic-types.mts +27 -27
- package/src/number/num-arithmetic-types.test.mts +21 -21
- package/src/number/num-arithmetic.test.mts +6 -6
- package/src/number/num.mts +24 -24
- package/src/number/num.test.mts +1 -1
- package/src/number/refined-number-utils.mts +25 -21
- package/src/object/object.mts +46 -34
- package/src/object/object.test.mts +5 -5
- package/src/others/cast-mutable.mts +1 -1
- package/src/others/cast-readonly.mts +1 -1
- package/src/others/debounce-function.mts +1 -5
- package/src/others/fast-deep-equal.test.mts +1 -1
- package/src/others/map-nullable.test.mts +1 -1
- package/src/others/memoize-function.mts +1 -1
- package/src/string/str.mts +33 -25
- package/src/string/str.test.mts +48 -38
- package/src/types.mts +14 -14
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/noshiro-pf/mono/blob/main/libs/ts-data-forge/LICENSE)
|
|
6
6
|
[](https://codecov.io/gh/noshiro-pf/mono)
|
|
7
7
|
|
|
8
|
-
**ts-data-forge** is a TypeScript utility library that provides type-safe functional programming utilities with
|
|
8
|
+
**ts-data-forge** is a TypeScript utility library that provides type-safe functional programming utilities with minimal runtime dependencies. It aims to enhance development robustness, maintainability, and correctness by leveraging TypeScript's powerful type system.
|
|
9
9
|
|
|
10
10
|
## Perfect Companion to ts-type-forge
|
|
11
11
|
|
|
@@ -34,7 +34,7 @@ This library offers a range of utilities, including:
|
|
|
34
34
|
|
|
35
35
|
## Documentation
|
|
36
36
|
|
|
37
|
-
- API reference: <https://noshiro-pf.github.io/ts-data-forge/>
|
|
37
|
+
- API reference: <https://noshiro-pf.github.io/mono/ts-data-forge/>
|
|
38
38
|
|
|
39
39
|
## Installation
|
|
40
40
|
|
|
@@ -76,7 +76,7 @@ ts-data-forge works best with strict TypeScript settings:
|
|
|
76
76
|
|
|
77
77
|
## Core Modules
|
|
78
78
|
|
|
79
|
-
### 🎯 [Functional Programming](https://noshiro-pf.github.io/ts-data-forge/)
|
|
79
|
+
### 🎯 [Functional Programming](https://noshiro-pf.github.io/mono/ts-data-forge/)
|
|
80
80
|
|
|
81
81
|
Essential FP utilities for cleaner, more reliable code.
|
|
82
82
|
|
|
@@ -108,7 +108,7 @@ Type-safe array and tuple utilities with functional programming patterns.
|
|
|
108
108
|
- **Array Utils** - Comprehensive array manipulation functions
|
|
109
109
|
- **Tuple Utils** - Type-safe tuple operations with compile-time guarantees
|
|
110
110
|
|
|
111
|
-
### 📦 [Collections](https://noshiro-pf.github.io/ts-data-forge/)
|
|
111
|
+
### 📦 [Collections](https://noshiro-pf.github.io/mono/ts-data-forge/)
|
|
112
112
|
|
|
113
113
|
Immutable data structures for safer state management.
|
|
114
114
|
|
|
@@ -158,7 +158,7 @@ expectType<Readonly<{ x: number }>, Readonly<{ x: number }>>('=');
|
|
|
158
158
|
// expectType<User, Admin>("="); // Error: Type 'User' is not strictly equal to type 'Admin'.
|
|
159
159
|
|
|
160
160
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
161
|
-
expectType<User, any>('!='); //
|
|
161
|
+
expectType<User, any>('!='); // OK: `User` is not strictly equal to `any` (comparisons with `any` are also strictly checked)
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
### 2. Functional Programming with `Optional`, `Result`, `pipe`, and `match`
|
|
@@ -279,12 +279,14 @@ assert.isTrue(Num.roundToInt(3.7) === 4);
|
|
|
279
279
|
// Type guards
|
|
280
280
|
const value = 5; // example value
|
|
281
281
|
|
|
282
|
-
if (Num.isNonZero(value)) {
|
|
283
|
-
|
|
284
|
-
const result = Num.div(10, value); // Safe division
|
|
285
|
-
|
|
286
|
-
assert.isTrue(result === 2);
|
|
282
|
+
if (!Num.isNonZero(value)) {
|
|
283
|
+
return;
|
|
287
284
|
}
|
|
285
|
+
|
|
286
|
+
// value is guaranteed to be non-zero
|
|
287
|
+
const result = Num.div(10, value); // Safe division
|
|
288
|
+
|
|
289
|
+
assert.isTrue(result === 2);
|
|
288
290
|
```
|
|
289
291
|
|
|
290
292
|
#### Branded Number Types for Enhanced Type Safety
|
|
@@ -373,7 +375,7 @@ The `Arr` object provides a rich set of functions for array manipulation.
|
|
|
373
375
|
|
|
374
376
|
```tsx
|
|
375
377
|
import { Arr, expectType, Optional } from 'ts-data-forge';
|
|
376
|
-
import {
|
|
378
|
+
import type { FixedLengthTuple, MinLengthTuple } from 'ts-type-forge';
|
|
377
379
|
|
|
378
380
|
const numbers: readonly number[] = [1, 2, 3, 4, 5, 2, 3] as const;
|
|
379
381
|
|
|
@@ -628,14 +630,14 @@ assert.deepStrictEqual(updatedState.items, ['newItem1', 'newItem2']);
|
|
|
628
630
|
- **`json`**: Type-safe JSON parsing and stringification utilities.
|
|
629
631
|
- **`collections`**: Immutable data structures like `IMap`, `ISet`, and `Queue` with full type safety.
|
|
630
632
|
- **`iterator`**: Utilities for working with iterators and generators (e.g., `range`).
|
|
631
|
-
- **`others`**: Miscellaneous utilities like `castMutable`, `castReadonly`, `ifThen`, `mapNullable`, `memoizeFunction`, `PanicError` / `isPanicError` / `createPanicError`, `
|
|
633
|
+
- **`others`**: Miscellaneous utilities like `castMutable`, `castReadonly`, `ifThen`, `mapNullable`, `memoizeFunction`, `PanicError` / `isPanicError` / `createPanicError`, `tp`, `unknownToString`.
|
|
632
634
|
|
|
633
635
|
## Key Benefits
|
|
634
636
|
|
|
635
637
|
- **Type Safety**: All utilities are designed with TypeScript's type system in mind, providing compile-time guarantees.
|
|
636
638
|
- **Immutability**: Data structures and operations promote immutable patterns for safer, more predictable code.
|
|
637
639
|
- **Functional Programming**: Support for functional programming paradigms with utilities like `Optional`, `Result`, and `pipe`.
|
|
638
|
-
- **
|
|
640
|
+
- **Minimal Runtime Dependencies**: The only runtime dependencies are [@sindresorhus/is](https://github.com/sindresorhus/is) plus two sibling packages, [ts-std-forge](https://www.npmjs.com/package/ts-std-forge) and [ts-type-forge](https://www.npmjs.com/package/ts-type-forge), keeping your bundle size minimal.
|
|
639
641
|
- **Comprehensive Testing**: All utilities are thoroughly tested with both runtime and compile-time tests.
|
|
640
642
|
|
|
641
643
|
**Important Notes:**
|
|
@@ -648,34 +650,19 @@ assert.deepStrictEqual(updatedState.items, ['newItem1', 'newItem2']);
|
|
|
648
650
|
|
|
649
651
|
Since `expectType` is only used for compile-time type checking, you should remove these calls in production builds for better performance.
|
|
650
652
|
|
|
651
|
-
### Rollup Configuration
|
|
652
|
-
|
|
653
|
-
```javascript
|
|
654
|
-
import rollupPluginStrip from '@rollup/plugin-strip';
|
|
655
|
-
|
|
656
|
-
export default {
|
|
657
|
-
// ... other config
|
|
658
|
-
plugins: [
|
|
659
|
-
// ... other plugins
|
|
660
|
-
rollupPluginStrip({
|
|
661
|
-
functions: ['expectType'],
|
|
662
|
-
include: '**/*.(mts|ts|mjs|js)',
|
|
663
|
-
}),
|
|
664
|
-
],
|
|
665
|
-
};
|
|
666
|
-
```
|
|
667
|
-
|
|
668
653
|
### Vite Configuration
|
|
669
654
|
|
|
670
|
-
```
|
|
655
|
+
```ts
|
|
671
656
|
import { defineConfig } from 'vite';
|
|
672
657
|
|
|
673
658
|
export default defineConfig({
|
|
674
659
|
// ... other config
|
|
675
660
|
build: {
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
661
|
+
rolldownOptions: {
|
|
662
|
+
treeshake: {
|
|
663
|
+
// Calls to these functions are treated as side-effect free, so
|
|
664
|
+
// statements that only call them are removed from the bundle.
|
|
665
|
+
manualPureFunctions: ['expectType'],
|
|
679
666
|
},
|
|
680
667
|
},
|
|
681
668
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { BoolOr, FixedLengthArray, FixedLengthTuple, Index, IsUnion, List, Min, NonEmptyArray, NonZeroSafeIntWithSmallInt, RelaxedExclude, SafeInt, SafeIntWithSmallInt, SafeUint, SafeUintWithSmallInt, Seq, SmallUint, StructuralPrefixLength, SupportedLength } from 'ts-type-forge';
|
|
2
|
+
import type { SizeType } from '../../types.mjs';
|
|
3
3
|
/**
|
|
4
4
|
* Creates an array of zeros with the specified length.
|
|
5
5
|
*
|
|
@@ -126,7 +126,7 @@ type RangeList<S extends SmallUint, E extends SmallUint> = BoolOr<IsUnion<S>, Is
|
|
|
126
126
|
* ```
|
|
127
127
|
*/
|
|
128
128
|
export declare function range<S extends SmallUint, E extends SmallUint>(start: S, end: E, step?: 1): RangeList<S, E>;
|
|
129
|
-
export declare function range(start: SafeUintWithSmallInt, end: SafeUintWithSmallInt, step?:
|
|
129
|
+
export declare function range(start: SafeUintWithSmallInt, end: SafeUintWithSmallInt, step?: NonZeroSafeIntWithSmallInt): readonly SafeUint[];
|
|
130
130
|
export declare function range(start: SafeIntWithSmallInt, end: SafeIntWithSmallInt, step?: NonZeroSafeIntWithSmallInt): readonly SafeInt[];
|
|
131
131
|
export {};
|
|
132
132
|
//# sourceMappingURL=array-utils-creation.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-creation.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-creation.mts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"array-utils-creation.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-creation.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-creation.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-creation.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array-utils-creation.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-creation.mts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGlE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,GAAM,EAKW,EAAE;AACnB,oEAAoE;AACpE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAU,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,GAAM,EAKsB,EAAE;AAC9B,oEAAoE;AACpE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAU,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAAM,EACN,IAAO,EAOY,EAAE;AACrB,oEAAoE;AACpE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAU,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE/B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,WAA8C,EAChC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAAmD,EAC5B,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAsC,KAAS,EAAM,EAAE;AACzE,oEAAoE;AACpE,KAAK,CAAC,KAAK,EAAmB,CAAC;AASjC,UAAU,CAAyC,GAAG,CAAC,CAAC;AAExD,UAAU,CAAgC,GAAG,CAAC,CAAC;AAE/C,UAAU,CAA+B,GAAG,CAAC,CAAC;AAE9C,UAAU,CAA0C,GAAG,CAAC,CAAC;AAEzD,UAAU,CAAsD,GAAG,CAAC,CAAC;AAErE,UAAU,CACR,GAAG,CACJ,CAAC;AAEF,UAAU,CAA+B,GAAG,CAAC,CAAC;AAsC9C,MAAM,UAAU,KAAK,CACnB,KAA0B,EAC1B,GAAwB,EACxB,IAAI,GAA+B,CAAC;IAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { NonEmptyTuple } from 'ts-type-forge';
|
|
2
2
|
import { Optional } from '../../functional/index.mjs';
|
|
3
|
-
import {
|
|
3
|
+
import type { ArgArrayIndexWithNegative, None, SizeType, Some } from '../../types.mjs';
|
|
4
4
|
/**
|
|
5
5
|
* Safely retrieves an element at a given index from an array, returning an Optional.
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-element-access.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-element-access.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"array-utils-element-access.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-element-access.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAQ,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EACV,yBAAyB,EACzB,IAAI,EACJ,QAAQ,EACR,IAAI,EACL,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EACpD,KAAK,EAAE,EAAE,EACT,KAAK,EAAE,yBAAyB,CAAC,EAAE,CAAC,GACnC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAIxB,wBAAgB,EAAE,CAChB,KAAK,EAAE,QAAQ,CAAC,kBAAkB,GACjC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;AA2B3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,SAC/C,EAAE,KACR,EAAE,SAAS,SAAS,EAAE,GACrB,IAAI,GACJ,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,GACzC,IAAI,CAAC,CAAC,CAAC,GACP,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC/B,IAAI,CAAC,CAAC,CAAC,GACP,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAEiD,CAAC;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,SAC/C,EAAE,KACR,EAAE,SAAS,SAAS,EAAE,GACrB,IAAI,GACJ,EAAE,SAAS,SAAS,CAAC,GAAG,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,GACzC,IAAI,CAAC,CAAC,CAAC,GACP,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC/B,IAAI,CAAC,CAAC,CAAC,GACP,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAEkD,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,KAAK,aAAO,CAAC"}
|
|
@@ -7,7 +7,7 @@ export function at(...args) {
|
|
|
7
7
|
return (array) => atImpl(array, ...args);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
const atImpl = (array, index) => pipe(index < 0 ? array.length + index : index).map((normalizedIndex) => normalizedIndex < 0 ||
|
|
10
|
+
const atImpl = (array, index) => pipe(index < 0 ? array.length + index : index).map((normalizedIndex) => normalizedIndex < 0 || array.length <= normalizedIndex
|
|
11
11
|
? Optional.none
|
|
12
12
|
:
|
|
13
13
|
Optional.some(array[normalizedIndex])).value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-element-access.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-element-access.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAwC5D,MAAM,UAAU,EAAE,CAChB,GAAG,IAE8C;IAEjD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAEzB,KAAK,CAAC;YACJ,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,CACb,KAAmB,EACnB,KAAkC,EACrB,EAAE,CACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CACrE,eAAe,GAAG,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"array-utils-element-access.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-element-access.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAwC5D,MAAM,UAAU,EAAE,CAChB,GAAG,IAE8C;IAEjD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAEzB,KAAK,CAAC;YACJ,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,CACb,KAAmB,EACnB,KAAkC,EACrB,EAAE,CACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CACrE,eAAe,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,eAAe;IACpD,CAAC,CAAC,QAAQ,CAAC,IAAI;IACf,CAAC,CAAC,oEAAoE;QACpE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAE,CAAC,CAC3C,CAAC,KAAK,CAAC;AAEV;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAS,EAOkB,EAAE;AAC7B,oEAAoE;AACpE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAS,EAOkB,EAAE;AAC7B,oEAAoE;AACpE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-iterators.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-iterators.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"array-utils-iterators.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-iterators.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,OAAO,GAAc,CAAC,SAC1B,SAAS,CAAC,EAAE,KAClB,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAI1C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,GAAc,CAAC,SAAS,SAAS,CAAC,EAAE,KAAG,aAAa,CAAC,CAAC,CAIxE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,GAAc,CAAC,SAC1B,SAAS,CAAC,EAAE,KAClB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAI5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,IAAI,gBAAU,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { BoundedLengthArray, FixedLengthArray, MaxLengthArray, MinLengthArray, NonEmptyArray, SupportedLength } from 'ts-type-forge';
|
|
2
2
|
/**
|
|
3
3
|
* Casts an array to `FixedLengthArray<Length, E>` after checking that it has
|
|
4
4
|
* exactly `length` elements.
|
|
@@ -19,13 +19,21 @@ import { type BoundedLengthArray, type FixedLengthArray, type MaxLengthArray, ty
|
|
|
19
19
|
* const rgb = Arr.asFixedLengthArray(3, [255, 128, 0]);
|
|
20
20
|
*
|
|
21
21
|
* const atMost5: MaxLengthArray<5, number> = rgb; // OK (3 <= 5)
|
|
22
|
+
*
|
|
22
23
|
* const red: number = rgb[0]; // OK — no `undefined`
|
|
23
24
|
*
|
|
24
25
|
* // curried version
|
|
25
26
|
* const asRgb = Arr.asFixedLengthArray(3);
|
|
27
|
+
*
|
|
26
28
|
* const green = asRgb([0, 255, 0]);
|
|
27
29
|
*
|
|
28
|
-
*
|
|
30
|
+
* assert.deepStrictEqual(Array.from(atMost5), [255, 128, 0]);
|
|
31
|
+
*
|
|
32
|
+
* assert.strictEqual(red, 255);
|
|
33
|
+
*
|
|
34
|
+
* assert.deepStrictEqual(green, [0, 255, 0]);
|
|
35
|
+
*
|
|
36
|
+
* assert.throws(() => Arr.asFixedLengthArray(3, [255, 128]), TypeError);
|
|
29
37
|
* ```
|
|
30
38
|
*
|
|
31
39
|
* @template Length - The exact number of elements.
|
|
@@ -57,13 +65,21 @@ export declare function asFixedLengthArray<Length extends SupportedLength>(lengt
|
|
|
57
65
|
* const history = Arr.asMinLengthArray(3, [0, 1, 2, 3]);
|
|
58
66
|
*
|
|
59
67
|
* const nonEmpty: MinLengthArray<1, number> = history; // OK (3 >= 1)
|
|
68
|
+
*
|
|
60
69
|
* const first: number = history[0]; // OK — no `undefined`
|
|
61
70
|
*
|
|
62
71
|
* // curried version
|
|
63
72
|
* const asHistory = Arr.asMinLengthArray(3);
|
|
73
|
+
*
|
|
64
74
|
* const next = asHistory([4, 5, 6, 7]);
|
|
65
75
|
*
|
|
66
|
-
*
|
|
76
|
+
* assert.deepStrictEqual(Array.from(nonEmpty), [0, 1, 2, 3]);
|
|
77
|
+
*
|
|
78
|
+
* assert.strictEqual(first, 0);
|
|
79
|
+
*
|
|
80
|
+
* assert.deepStrictEqual(next, [4, 5, 6, 7]);
|
|
81
|
+
*
|
|
82
|
+
* assert.throws(() => Arr.asMinLengthArray(3, [0]), TypeError);
|
|
67
83
|
* ```
|
|
68
84
|
*
|
|
69
85
|
* @template MinLength - The minimum number of elements (inclusive).
|
|
@@ -96,9 +112,14 @@ export declare function asMinLengthArray<MinLength extends SupportedLength>(minL
|
|
|
96
112
|
*
|
|
97
113
|
* // curried version
|
|
98
114
|
* const asTags = Arr.asMaxLengthArray(8);
|
|
115
|
+
*
|
|
99
116
|
* const more = asTags(['d', 'e']);
|
|
100
117
|
*
|
|
101
|
-
*
|
|
118
|
+
* assert.deepStrictEqual(Array.from(relaxed), ['a', 'b', 'c']);
|
|
119
|
+
*
|
|
120
|
+
* assert.deepStrictEqual(more, ['d', 'e']);
|
|
121
|
+
*
|
|
122
|
+
* assert.throws(() => Arr.asMaxLengthArray(2, ['a', 'b', 'c']), TypeError);
|
|
102
123
|
* ```
|
|
103
124
|
*
|
|
104
125
|
* @template MaxLength - The maximum number of elements (inclusive).
|
|
@@ -133,9 +154,14 @@ export declare function asMaxLengthArray<MaxLength extends SupportedLength>(maxL
|
|
|
133
154
|
*
|
|
134
155
|
* // curried version
|
|
135
156
|
* const asSelection = Arr.asBoundedLengthArray(1, 5);
|
|
157
|
+
*
|
|
136
158
|
* const next = asSelection([4, 5]);
|
|
137
159
|
*
|
|
138
|
-
*
|
|
160
|
+
* assert.deepStrictEqual(Array.from(relaxed), [1, 2, 3]);
|
|
161
|
+
*
|
|
162
|
+
* assert.deepStrictEqual(next, [4, 5]);
|
|
163
|
+
*
|
|
164
|
+
* assert.throws(() => Arr.asBoundedLengthArray(1, 5, []), TypeError);
|
|
139
165
|
* ```
|
|
140
166
|
*
|
|
141
167
|
* @template MinLength - The minimum number of elements (inclusive).
|
|
@@ -165,7 +191,9 @@ export declare function asBoundedLengthArray<MinLength extends SupportedLength,
|
|
|
165
191
|
*
|
|
166
192
|
* const atMost5: MaxLengthArray<5, never> = nothing; // OK (0 <= 5)
|
|
167
193
|
*
|
|
168
|
-
*
|
|
194
|
+
* assert.deepStrictEqual(Array.from(atMost5), []);
|
|
195
|
+
*
|
|
196
|
+
* assert.throws(() => Arr.asEmptyArray([1]), TypeError);
|
|
169
197
|
* ```
|
|
170
198
|
*
|
|
171
199
|
* @template Xs - The input array type (tuple types are preserved).
|
|
@@ -192,7 +220,9 @@ export declare const asEmptyArray: <Xs extends readonly unknown[]>(xs: Xs) => Fi
|
|
|
192
220
|
*
|
|
193
221
|
* const first: number = history[0]; // OK — no `undefined`
|
|
194
222
|
*
|
|
195
|
-
*
|
|
223
|
+
* assert.strictEqual(first, 0);
|
|
224
|
+
*
|
|
225
|
+
* assert.throws(() => Arr.asNonEmptyArray([]), TypeError);
|
|
196
226
|
* ```
|
|
197
227
|
*
|
|
198
228
|
* @template Xs - The input array type (tuple types are preserved).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-length-bounded-array-cast.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-cast.mts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"array-utils-length-bounded-array-cast.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-cast.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-length-bounded-array-cast.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-cast.mts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"array-utils-length-bounded-array-cast.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-cast.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { BoundedLengthArray, FixedLengthArray, MaxLengthArray, MinLengthArray, SupportedLength } from 'ts-type-forge';
|
|
2
2
|
/**
|
|
3
3
|
* Type guard that checks if an array has at least `minLength` elements.
|
|
4
4
|
*
|
|
@@ -31,9 +31,9 @@ import { type BoundedLengthArray, type FixedLengthArray, type MaxLengthArray, ty
|
|
|
31
31
|
*
|
|
32
32
|
* const nonEmpty: MinLengthArray<1, number> = input; // OK (3 >= 1)
|
|
33
33
|
*
|
|
34
|
-
* assert.
|
|
34
|
+
* assert.strictEqual(history[0], 0);
|
|
35
35
|
*
|
|
36
|
-
* assert.
|
|
36
|
+
* assert.strictEqual(nonEmpty[0], 0);
|
|
37
37
|
* }
|
|
38
38
|
*
|
|
39
39
|
* // curried version
|
|
@@ -83,9 +83,9 @@ export declare function isMinLengthArray<MinLength extends SupportedLength>(minL
|
|
|
83
83
|
*
|
|
84
84
|
* const relaxed: MaxLengthArray<16, string> = input; // OK (8 <= 16)
|
|
85
85
|
*
|
|
86
|
-
* assert.
|
|
86
|
+
* assert.strictEqual(tags.length, 3);
|
|
87
87
|
*
|
|
88
|
-
* assert.
|
|
88
|
+
* assert.strictEqual(relaxed.length, 3);
|
|
89
89
|
* }
|
|
90
90
|
*
|
|
91
91
|
* // curried version
|
|
@@ -136,9 +136,9 @@ export declare function isMaxLengthArray<MaxLength extends SupportedLength>(maxL
|
|
|
136
136
|
*
|
|
137
137
|
* const relaxed: BoundedLengthArray<0, 100, number> = input; // OK ([1, 5] ⊆ [0, 100])
|
|
138
138
|
*
|
|
139
|
-
* assert.
|
|
139
|
+
* assert.strictEqual(selection[0], 1);
|
|
140
140
|
*
|
|
141
|
-
* assert.
|
|
141
|
+
* assert.strictEqual(relaxed.length, 3);
|
|
142
142
|
* }
|
|
143
143
|
*
|
|
144
144
|
* // curried version
|
|
@@ -192,9 +192,9 @@ export declare function isBoundedLengthArray<MinLength extends SupportedLength,
|
|
|
192
192
|
*
|
|
193
193
|
* const atMost5: MaxLengthArray<5, number> = input; // OK (3 <= 5)
|
|
194
194
|
*
|
|
195
|
-
* assert.
|
|
195
|
+
* assert.strictEqual(rgb[0], 255);
|
|
196
196
|
*
|
|
197
|
-
* assert.
|
|
197
|
+
* assert.strictEqual(atMost5.length, 3);
|
|
198
198
|
* }
|
|
199
199
|
*
|
|
200
200
|
* // curried version
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-length-bounded-array-guard.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-guard.mts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"array-utils-length-bounded-array-guard.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-guard.mts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export function isBoundedLengthArray(...args) {
|
|
|
24
24
|
return (xs) => hasBoundedLength(args[0], args[1], xs);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
const hasBoundedLength = (minLength, maxLength, xs) => xs.length
|
|
27
|
+
const hasBoundedLength = (minLength, maxLength, xs) => minLength <= xs.length && xs.length <= maxLength;
|
|
28
28
|
export function isFixedLengthArray(...args) {
|
|
29
29
|
switch (args.length) {
|
|
30
30
|
case 2:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-length-bounded-array-guard.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-guard.mts"],"names":[],"mappings":"AAyEA,MAAM,UAAU,gBAAgB,CAC9B,GAAG,IAEsC;IAEzC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QAE/B,KAAK,CAAC;YACJ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,SAA0B,EAC1B,EAAsB,EACb,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC;AAmErC,MAAM,UAAU,gBAAgB,CAC9B,GAAG,IAEsC;IAEzC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QAE/B,KAAK,CAAC;YACJ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,SAA0B,EAC1B,EAAsB,EACb,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC;AA6ErC,MAAM,UAAU,oBAAoB,CAClC,GAAG,IAMkE;IAErE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;QAEnC,KAAK,CAAC;YACJ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,CACvB,SAA0B,EAC1B,SAA0B,EAC1B,EAAsB,EACb,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"array-utils-length-bounded-array-guard.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-array-guard.mts"],"names":[],"mappings":"AAyEA,MAAM,UAAU,gBAAgB,CAC9B,GAAG,IAEsC;IAEzC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QAE/B,KAAK,CAAC;YACJ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,SAA0B,EAC1B,EAAsB,EACb,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC;AAmErC,MAAM,UAAU,gBAAgB,CAC9B,GAAG,IAEsC;IAEzC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QAE/B,KAAK,CAAC;YACJ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,SAA0B,EAC1B,EAAsB,EACb,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC;AA6ErC,MAAM,UAAU,oBAAoB,CAClC,GAAG,IAMkE;IAErE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;QAEnC,KAAK,CAAC;YACJ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,CACvB,SAA0B,EAC1B,SAA0B,EAC1B,EAAsB,EACb,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC;AAiE/D,MAAM,UAAU,kBAAkB,CAChC,GAAG,IAEmC;IAEtC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,OAAO,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;QAEjC,KAAK,CAAC;YACJ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,MAAuB,EACvB,EAAsB,EACb,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAS,EACsC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAS,EACoC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { BoundedLengthTuple, FixedLengthTuple, MaxLengthTuple, MinLengthTuple } from 'ts-type-forge';
|
|
2
|
+
import type { SizeType } from '../../types.mjs';
|
|
3
3
|
/**
|
|
4
4
|
* Casts an array to `FixedLengthTuple<Length, E>` after checking that it has
|
|
5
5
|
* exactly `length` elements.
|
|
@@ -23,7 +23,11 @@ import { type SizeType } from '../../types.mjs';
|
|
|
23
23
|
* // curried version
|
|
24
24
|
* const asRgb = Arr.asFixedLengthTuple(3);
|
|
25
25
|
*
|
|
26
|
-
*
|
|
26
|
+
* assert.strictEqual(red, 255);
|
|
27
|
+
*
|
|
28
|
+
* assert.deepStrictEqual(asRgb([0, 255, 0]), [0, 255, 0]);
|
|
29
|
+
*
|
|
30
|
+
* assert.throws(() => Arr.asFixedLengthTuple(3, [255, 128]), TypeError);
|
|
27
31
|
* ```
|
|
28
32
|
*
|
|
29
33
|
* @template Length - The exact number of elements.
|
|
@@ -52,7 +56,11 @@ export declare function asFixedLengthTuple<Length extends SizeType.ArgArr>(lengt
|
|
|
52
56
|
* // curried version
|
|
53
57
|
* const asHistory = Arr.asMinLengthTuple(3);
|
|
54
58
|
*
|
|
55
|
-
*
|
|
59
|
+
* assert.strictEqual(first, 0);
|
|
60
|
+
*
|
|
61
|
+
* assert.deepStrictEqual(asHistory([4, 5, 6]), [4, 5, 6]);
|
|
62
|
+
*
|
|
63
|
+
* assert.throws(() => Arr.asMinLengthTuple(3, [0, 1]), TypeError);
|
|
56
64
|
* ```
|
|
57
65
|
*
|
|
58
66
|
* @template MinLength - The minimum number of elements (inclusive).
|
|
@@ -79,7 +87,11 @@ export declare function asMinLengthTuple<MinLength extends SizeType.ArgArr>(minL
|
|
|
79
87
|
* // curried version
|
|
80
88
|
* const asTags = Arr.asMaxLengthTuple(8);
|
|
81
89
|
*
|
|
82
|
-
*
|
|
90
|
+
* assert.deepStrictEqual(tags, ['a', 'b', 'c']);
|
|
91
|
+
*
|
|
92
|
+
* assert.deepStrictEqual(asTags(['d', 'e']), ['d', 'e']);
|
|
93
|
+
*
|
|
94
|
+
* assert.throws(() => Arr.asMaxLengthTuple(2, ['a', 'b', 'c']), TypeError);
|
|
83
95
|
* ```
|
|
84
96
|
*
|
|
85
97
|
* @template MaxLength - The maximum number of elements (inclusive).
|
|
@@ -106,7 +118,11 @@ export declare function asMaxLengthTuple<MaxLength extends SizeType.ArgArr>(maxL
|
|
|
106
118
|
* // curried version
|
|
107
119
|
* const asSelection = Arr.asBoundedLengthTuple(1, 5);
|
|
108
120
|
*
|
|
109
|
-
*
|
|
121
|
+
* assert.deepStrictEqual(selection, [1, 2, 3]);
|
|
122
|
+
*
|
|
123
|
+
* assert.deepStrictEqual(asSelection([4, 5]), [4, 5]);
|
|
124
|
+
*
|
|
125
|
+
* assert.throws(() => Arr.asBoundedLengthTuple(1, 2, [1, 2, 3]), TypeError);
|
|
110
126
|
* ```
|
|
111
127
|
*
|
|
112
128
|
* @template Min - The minimum number of elements (inclusive).
|
|
@@ -132,7 +148,9 @@ export declare function asBoundedLengthTuple<Min extends SizeType.ArgArr, Max ex
|
|
|
132
148
|
* ```ts
|
|
133
149
|
* const nothing = Arr.asEmptyTuple([]);
|
|
134
150
|
*
|
|
135
|
-
*
|
|
151
|
+
* assert.deepStrictEqual(nothing, []);
|
|
152
|
+
*
|
|
153
|
+
* assert.throws(() => Arr.asEmptyTuple([1]), TypeError);
|
|
136
154
|
* ```
|
|
137
155
|
*
|
|
138
156
|
* @template Xs - The input array type (tuple types are preserved).
|
|
@@ -155,7 +173,9 @@ export declare const asEmptyTuple: <Xs extends readonly unknown[]>(xs: Xs) => re
|
|
|
155
173
|
*
|
|
156
174
|
* const first: number = values[0]; // OK — no `undefined`
|
|
157
175
|
*
|
|
158
|
-
*
|
|
176
|
+
* assert.strictEqual(first, 1);
|
|
177
|
+
*
|
|
178
|
+
* assert.throws(() => Arr.asNonEmptyTuple([]), TypeError);
|
|
159
179
|
* ```
|
|
160
180
|
*
|
|
161
181
|
* @template Xs - The input array type (tuple types are preserved).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-length-bounded-tuple-cast.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-tuple-cast.mts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"array-utils-length-bounded-tuple-cast.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-tuple-cast.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-length-bounded-tuple-cast.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-tuple-cast.mts"],"names":[],"mappings":"AAOA,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"array-utils-length-bounded-tuple-cast.mjs","sourceRoot":"","sources":["../../../src/array/impl/array-utils-length-bounded-tuple-cast.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { BoundedLengthTuple, FixedLengthTuple, MaxLengthTuple, MinLengthTuple } from 'ts-type-forge';
|
|
2
|
+
import type { SizeType } from '../../types.mjs';
|
|
3
3
|
/**
|
|
4
4
|
* Type guard that checks if an array is empty, narrowing it to the structural
|
|
5
5
|
* empty tuple.
|
|
@@ -126,7 +126,7 @@ export declare function isMaxLengthTuple<N extends SizeType.ArgArr>(len: N): <E>
|
|
|
126
126
|
* assert.isFalse(Arr.isBoundedLengthTuple(1, 3, quad));
|
|
127
127
|
*
|
|
128
128
|
* if (Arr.isBoundedLengthTuple(1, 3, pair)) {
|
|
129
|
-
* assert.isTrue(pair.length
|
|
129
|
+
* assert.isTrue(1 <= pair.length && pair.length <= 3);
|
|
130
130
|
* }
|
|
131
131
|
* ```
|
|
132
132
|
*/
|