ts-data-forge 3.3.0 → 4.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 +37 -13
- package/dist/array/impl/array-utils-creation.d.mts +116 -0
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-creation.mjs +110 -0
- package/dist/array/impl/array-utils-creation.mjs.map +1 -0
- package/dist/array/impl/array-utils-element-access.d.mts +60 -0
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -0
- package/dist/array/impl/array-utils-element-access.mjs +66 -0
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -0
- package/dist/array/impl/array-utils-iterators.d.mts +59 -0
- package/dist/array/impl/array-utils-iterators.d.mts.map +1 -0
- package/dist/array/impl/array-utils-iterators.mjs +104 -0
- package/dist/array/impl/array-utils-iterators.mjs.map +1 -0
- package/dist/array/impl/array-utils-modification.d.mts +154 -0
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -0
- package/dist/array/impl/array-utils-modification.mjs +139 -0
- package/dist/array/impl/array-utils-modification.mjs.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts +213 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.mjs +162 -0
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
- package/dist/array/impl/array-utils-search.d.mts +178 -0
- package/dist/array/impl/array-utils-search.d.mts.map +1 -0
- package/dist/array/impl/array-utils-search.mjs +153 -0
- package/dist/array/impl/array-utils-search.mjs.map +1 -0
- package/dist/array/impl/array-utils-set-op.d.mts +100 -0
- package/dist/array/impl/array-utils-set-op.d.mts.map +1 -0
- package/dist/array/impl/array-utils-set-op.mjs +137 -0
- package/dist/array/impl/array-utils-set-op.mjs.map +1 -0
- package/dist/array/impl/array-utils-size.d.mts +24 -0
- package/dist/array/impl/array-utils-size.d.mts.map +1 -0
- package/dist/array/impl/array-utils-size.mjs +28 -0
- package/dist/array/impl/array-utils-size.mjs.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts +18 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs +49 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -0
- package/dist/array/impl/array-utils-slicing.d.mts +120 -0
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slicing.mjs +140 -0
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -0
- package/dist/array/impl/array-utils-transformation.d.mts +348 -0
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-transformation.mjs +329 -0
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -0
- package/dist/array/impl/array-utils-validation.d.mts +149 -0
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-validation.mjs +166 -0
- package/dist/array/impl/array-utils-validation.mjs.map +1 -0
- package/dist/array/impl/index.d.mts +13 -0
- package/dist/array/impl/index.d.mts.map +1 -0
- package/dist/array/impl/index.mjs +13 -0
- package/dist/array/impl/index.mjs.map +1 -0
- package/dist/array/index.d.mts +1 -1
- package/dist/array/index.d.mts.map +1 -1
- package/dist/array/index.mjs +2 -1
- package/dist/array/index.mjs.map +1 -1
- package/dist/collections/imap-mapped.d.mts +83 -254
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +40 -170
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts +436 -164
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +83 -101
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.d.mts +828 -345
- package/dist/collections/iset-mapped.d.mts.map +1 -1
- package/dist/collections/iset-mapped.mjs +200 -242
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.d.mts +397 -205
- package/dist/collections/iset.d.mts.map +1 -1
- package/dist/collections/iset.mjs +102 -184
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.d.mts +155 -136
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/queue.mjs +59 -160
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.d.mts +154 -155
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/collections/stack.mjs +58 -207
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.d.mts +2 -0
- package/dist/entry-point.d.mts.map +1 -1
- package/dist/entry-point.mjs +8 -5
- package/dist/entry-point.mjs.map +1 -1
- package/dist/expect-type.d.mts +43 -172
- package/dist/expect-type.d.mts.map +1 -1
- package/dist/expect-type.mjs +43 -172
- package/dist/expect-type.mjs.map +1 -1
- package/dist/functional/index.d.mts +2 -2
- package/dist/functional/index.d.mts.map +1 -1
- package/dist/functional/index.mjs +4 -2
- package/dist/functional/index.mjs.map +1 -1
- package/dist/functional/match.d.mts +35 -140
- package/dist/functional/match.d.mts.map +1 -1
- package/dist/functional/match.mjs.map +1 -1
- package/dist/functional/optional/impl/index.d.mts +18 -0
- package/dist/functional/optional/impl/index.d.mts.map +1 -0
- package/dist/functional/optional/impl/index.mjs +17 -0
- package/dist/functional/optional/impl/index.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts +29 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs +25 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-filter.d.mts +29 -0
- package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-filter.mjs +28 -0
- package/dist/functional/optional/impl/optional-filter.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts +33 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs +21 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts +24 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs +29 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts +18 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs +27 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-map.d.mts +31 -0
- package/dist/functional/optional/impl/optional-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-map.mjs +25 -0
- package/dist/functional/optional/impl/optional-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-none.d.mts +16 -0
- package/dist/functional/optional/impl/optional-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-none.mjs +20 -0
- package/dist/functional/optional/impl/optional-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts +35 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.mjs +19 -0
- package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-some.d.mts +19 -0
- package/dist/functional/optional/impl/optional-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-some.mjs +26 -0
- package/dist/functional/optional/impl/optional-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts +27 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs +31 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts +33 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs +19 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +29 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs +38 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts +28 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs +11 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-zip.d.mts +31 -0
- package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-zip.mjs +39 -0
- package/dist/functional/optional/impl/optional-zip.mjs.map +1 -0
- package/dist/functional/optional/impl/tag.d.mts +5 -0
- package/dist/functional/optional/impl/tag.d.mts.map +1 -0
- package/dist/functional/optional/impl/tag.mjs +7 -0
- package/dist/functional/optional/impl/tag.mjs.map +1 -0
- package/dist/functional/optional/impl/types.d.mts +22 -0
- package/dist/functional/optional/impl/types.d.mts.map +1 -0
- package/dist/functional/optional/impl/types.mjs +2 -0
- package/dist/functional/optional/impl/types.mjs.map +1 -0
- package/dist/functional/optional/index.d.mts +2 -0
- package/dist/functional/optional/index.d.mts.map +1 -0
- package/dist/functional/optional/index.mjs +3 -0
- package/dist/functional/optional/index.mjs.map +1 -0
- package/dist/functional/pipe.d.mts +63 -117
- package/dist/functional/pipe.d.mts.map +1 -1
- package/dist/functional/pipe.mjs +4 -3
- package/dist/functional/pipe.mjs.map +1 -1
- package/dist/functional/result/impl/index.d.mts +24 -0
- package/dist/functional/result/impl/index.d.mts.map +1 -0
- package/dist/functional/result/impl/index.mjs +23 -0
- package/dist/functional/result/impl/index.mjs.map +1 -0
- package/dist/functional/result/impl/result-err.d.mts +25 -0
- package/dist/functional/result/impl/result-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-err.mjs +32 -0
- package/dist/functional/result/impl/result-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts +27 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs +26 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -0
- package/dist/functional/result/impl/result-flat-map.d.mts +39 -0
- package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-flat-map.mjs +24 -0
- package/dist/functional/result/impl/result-flat-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-fold.d.mts +45 -0
- package/dist/functional/result/impl/result-fold.d.mts.map +1 -0
- package/dist/functional/result/impl/result-fold.mjs +26 -0
- package/dist/functional/result/impl/result-fold.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-promise.d.mts +32 -0
- package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-promise.mjs +32 -0
- package/dist/functional/result/impl/result-from-promise.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts +29 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.mjs +46 -0
- package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-err.d.mts +20 -0
- package/dist/functional/result/impl/result-is-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-err.mjs +23 -0
- package/dist/functional/result/impl/result-is-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-ok.d.mts +20 -0
- package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-ok.mjs +23 -0
- package/dist/functional/result/impl/result-is-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-result.d.mts +17 -0
- package/dist/functional/result/impl/result-is-result.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-result.mjs +26 -0
- package/dist/functional/result/impl/result-is-result.mjs.map +1 -0
- package/dist/functional/result/impl/result-map-err.d.mts +33 -0
- package/dist/functional/result/impl/result-map-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map-err.mjs +25 -0
- package/dist/functional/result/impl/result-map-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-map.d.mts +34 -0
- package/dist/functional/result/impl/result-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map.mjs +25 -0
- package/dist/functional/result/impl/result-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-ok.d.mts +25 -0
- package/dist/functional/result/impl/result-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-ok.mjs +32 -0
- package/dist/functional/result/impl/result-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-or-else.d.mts +32 -0
- package/dist/functional/result/impl/result-or-else.d.mts.map +1 -0
- package/dist/functional/result/impl/result-or-else.mjs +20 -0
- package/dist/functional/result/impl/result-or-else.mjs.map +1 -0
- package/dist/functional/result/impl/result-swap.d.mts +20 -0
- package/dist/functional/result/impl/result-swap.d.mts.map +1 -0
- package/dist/functional/result/impl/result-swap.mjs +28 -0
- package/dist/functional/result/impl/result-swap.mjs.map +1 -0
- package/dist/functional/result/impl/result-to-optional.d.mts +28 -0
- package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -0
- package/dist/functional/result/impl/result-to-optional.mjs +34 -0
- package/dist/functional/result/impl/result-to-optional.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs +47 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts +31 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs +36 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts +23 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs +11 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs +41 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-zip.d.mts +29 -0
- package/dist/functional/result/impl/result-zip.d.mts.map +1 -0
- package/dist/functional/result/impl/result-zip.mjs +38 -0
- package/dist/functional/result/impl/result-zip.mjs.map +1 -0
- package/dist/functional/result/impl/tag.d.mts +5 -0
- package/dist/functional/result/impl/tag.d.mts.map +1 -0
- package/dist/functional/result/impl/tag.mjs +7 -0
- package/dist/functional/result/impl/tag.mjs.map +1 -0
- package/dist/functional/result/impl/types.d.mts +29 -0
- package/dist/functional/result/impl/types.d.mts.map +1 -0
- package/dist/functional/result/impl/types.mjs +2 -0
- package/dist/functional/result/impl/types.mjs.map +1 -0
- package/dist/functional/result/index.d.mts +2 -0
- package/dist/functional/result/index.d.mts.map +1 -0
- package/dist/functional/result/index.mjs +3 -0
- package/dist/functional/result/index.mjs.map +1 -0
- package/dist/globals.d.mts +95 -5
- package/dist/guard/has-key.d.mts +23 -74
- package/dist/guard/has-key.d.mts.map +1 -1
- package/dist/guard/has-key.mjs +23 -74
- package/dist/guard/has-key.mjs.map +1 -1
- package/dist/guard/is-non-empty-string.d.mts +20 -87
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/guard/is-non-empty-string.mjs +20 -87
- package/dist/guard/is-non-empty-string.mjs.map +1 -1
- package/dist/guard/is-non-null-object.d.mts +14 -84
- package/dist/guard/is-non-null-object.d.mts.map +1 -1
- package/dist/guard/is-non-null-object.mjs +14 -84
- package/dist/guard/is-non-null-object.mjs.map +1 -1
- package/dist/guard/is-primitive.d.mts +13 -126
- package/dist/guard/is-primitive.d.mts.map +1 -1
- package/dist/guard/is-primitive.mjs +13 -126
- package/dist/guard/is-primitive.mjs.map +1 -1
- package/dist/guard/is-record.d.mts +21 -132
- package/dist/guard/is-record.d.mts.map +1 -1
- package/dist/guard/is-record.mjs +21 -132
- package/dist/guard/is-record.mjs.map +1 -1
- package/dist/guard/is-type.d.mts +201 -238
- package/dist/guard/is-type.d.mts.map +1 -1
- package/dist/guard/is-type.mjs +201 -238
- package/dist/guard/is-type.mjs.map +1 -1
- package/dist/guard/key-is-in.d.mts +22 -139
- package/dist/guard/key-is-in.d.mts.map +1 -1
- package/dist/guard/key-is-in.mjs +22 -139
- package/dist/guard/key-is-in.mjs.map +1 -1
- package/dist/index.d.mts +0 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -5
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.d.mts +29 -62
- package/dist/iterator/range.d.mts.map +1 -1
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts +191 -122
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +246 -144
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +24 -156
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +28 -160
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +122 -120
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +123 -121
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +22 -30
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +23 -31
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +22 -31
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +23 -32
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +32 -40
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +25 -35
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +27 -36
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +26 -41
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +15 -30
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +16 -31
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +28 -36
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +30 -37
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +40 -41
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +30 -44
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +133 -123
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +134 -124
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +24 -35
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +25 -36
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +24 -35
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +25 -36
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +161 -35
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +24 -35
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +25 -36
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +26 -36
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +27 -37
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +140 -99
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +143 -102
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +24 -33
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +26 -35
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +121 -30
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +122 -31
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +26 -34
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +27 -35
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +26 -68
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +27 -69
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +37 -101
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +40 -171
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +45 -55
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +47 -156
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/num.d.mts +145 -206
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/num.mjs +143 -199
- package/dist/number/num.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +97 -21
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +91 -22
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts +126 -208
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +68 -102
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/cast-mutable.d.mts +12 -88
- package/dist/others/cast-mutable.d.mts.map +1 -1
- package/dist/others/cast-mutable.mjs +13 -89
- package/dist/others/cast-mutable.mjs.map +1 -1
- package/dist/others/cast-readonly.d.mts +12 -168
- package/dist/others/cast-readonly.d.mts.map +1 -1
- package/dist/others/cast-readonly.mjs +13 -169
- package/dist/others/cast-readonly.mjs.map +1 -1
- package/dist/others/if-then.d.mts +6 -83
- package/dist/others/if-then.d.mts.map +1 -1
- package/dist/others/if-then.mjs +6 -83
- package/dist/others/if-then.mjs.map +1 -1
- package/dist/others/map-nullable.d.mts +12 -136
- package/dist/others/map-nullable.d.mts.map +1 -1
- package/dist/others/map-nullable.mjs.map +1 -1
- package/dist/others/memoize-function.d.mts +14 -157
- package/dist/others/memoize-function.d.mts.map +1 -1
- package/dist/others/memoize-function.mjs +14 -157
- package/dist/others/memoize-function.mjs.map +1 -1
- package/dist/others/tuple.d.mts +33 -151
- package/dist/others/tuple.d.mts.map +1 -1
- package/dist/others/tuple.mjs +33 -151
- package/dist/others/tuple.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts +11 -125
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +12 -126
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/dist/promise/promise.d.mts +33 -21
- package/dist/promise/promise.d.mts.map +1 -1
- package/dist/promise/promise.mjs +36 -24
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +58 -44
- package/src/array/impl/array-utils-creation.mts +192 -0
- package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
- package/src/array/impl/array-utils-element-access.mts +115 -0
- package/src/array/impl/array-utils-element-access.test.mts +151 -0
- package/src/array/impl/array-utils-iterators.mts +79 -0
- package/src/array/impl/array-utils-iterators.test.mts +98 -0
- package/src/array/impl/array-utils-modification.mts +434 -0
- package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
- package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
- package/src/array/impl/array-utils-reducing-value.mts +535 -0
- package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +53 -58
- package/src/array/impl/array-utils-search.mts +509 -0
- package/src/array/impl/array-utils-search.test.mts +346 -0
- package/src/array/impl/array-utils-set-op.mts +166 -0
- package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
- package/src/array/impl/array-utils-size.mts +30 -0
- package/src/array/impl/array-utils-size.test.mts +9 -0
- package/src/array/impl/array-utils-slice-clamped.mts +51 -0
- package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +13 -13
- package/src/array/impl/array-utils-slicing.mts +275 -0
- package/src/array/impl/array-utils-slicing.test.mts +158 -0
- package/src/array/impl/array-utils-transformation.mts +746 -0
- package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
- package/src/array/impl/array-utils-validation.mts +241 -0
- package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
- package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
- package/src/array/impl/index.mts +12 -0
- package/src/array/index.mts +1 -1
- package/src/collections/imap-mapped.mts +99 -265
- package/src/collections/imap.mts +477 -174
- package/src/collections/imap.test.mts +12 -19
- package/src/collections/iset-mapped.mts +892 -358
- package/src/collections/iset.mts +429 -213
- package/src/collections/queue.mts +174 -200
- package/src/collections/stack.mts +172 -245
- package/src/collections/stack.test.mts +9 -1
- package/src/entry-point.mts +2 -0
- package/src/expect-type.mts +43 -172
- package/src/functional/index.mts +2 -2
- package/src/functional/match.mts +35 -145
- package/src/functional/optional/impl/index.mts +17 -0
- package/src/functional/optional/impl/optional-expect-to-be.mts +65 -0
- package/src/functional/optional/impl/optional-filter.mts +71 -0
- package/src/functional/optional/impl/optional-flat-map.mts +67 -0
- package/src/functional/optional/impl/optional-from-nullable.mts +28 -0
- package/src/functional/optional/impl/optional-is-none.mts +25 -0
- package/src/functional/optional/impl/optional-is-optional.mts +27 -0
- package/src/functional/optional/impl/optional-is-some.mts +25 -0
- package/src/functional/optional/impl/optional-map.mts +69 -0
- package/src/functional/optional/impl/optional-none.mts +17 -0
- package/src/functional/optional/impl/optional-or-else.mts +73 -0
- package/src/functional/optional/impl/optional-some.mts +23 -0
- package/src/functional/optional/impl/optional-to-nullable.mts +31 -0
- package/src/functional/optional/impl/optional-unwrap-or.mts +64 -0
- package/src/functional/optional/impl/optional-unwrap-throw.mts +39 -0
- package/src/functional/optional/impl/optional-unwrap.mts +41 -0
- package/src/functional/optional/impl/optional-zip.mts +40 -0
- package/src/functional/optional/impl/tag.mts +6 -0
- package/src/functional/optional/impl/types.mts +28 -0
- package/src/functional/optional/index.mts +1 -0
- package/src/functional/optional.test.mts +11 -9
- package/src/functional/pipe.mts +65 -118
- package/src/functional/pipe.test.mts +1 -1
- package/src/functional/result/impl/index.mts +23 -0
- package/src/functional/result/impl/result-err.mts +29 -0
- package/src/functional/result/impl/result-expect-to-be.mts +63 -0
- package/src/functional/result/impl/result-flat-map.mts +79 -0
- package/src/functional/result/impl/result-fold.mts +95 -0
- package/src/functional/result/impl/result-from-promise.mts +39 -0
- package/src/functional/result/impl/result-from-throwable.mts +42 -0
- package/src/functional/result/impl/result-is-err.mts +23 -0
- package/src/functional/result/impl/result-is-ok.mts +23 -0
- package/src/functional/result/impl/result-is-result.mts +23 -0
- package/src/functional/result/impl/result-map-err.mts +72 -0
- package/src/functional/result/impl/result-map.mts +73 -0
- package/src/functional/result/impl/result-ok.mts +29 -0
- package/src/functional/result/impl/result-or-else.mts +63 -0
- package/src/functional/result/impl/result-swap.mts +28 -0
- package/src/functional/result/impl/result-to-optional.mts +34 -0
- package/src/functional/result/impl/result-unwrap-err-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-err-throw.mts +53 -0
- package/src/functional/result/impl/result-unwrap-err.mts +36 -0
- package/src/functional/result/impl/result-unwrap-ok-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-ok.mts +35 -0
- package/src/functional/result/impl/result-unwrap-throw.mts +43 -0
- package/src/functional/result/impl/result-zip.mts +39 -0
- package/src/functional/result/impl/tag.mts +6 -0
- package/src/functional/result/impl/types.mts +35 -0
- package/src/functional/result/index.mts +1 -0
- package/src/functional/result.test.mts +14 -6
- package/src/globals.d.mts +95 -5
- package/src/guard/has-key.mts +23 -74
- package/src/guard/is-non-empty-string.mts +20 -87
- package/src/guard/is-non-empty-string.test.mts +1 -1
- package/src/guard/is-non-null-object.mts +14 -84
- package/src/guard/is-non-null-object.test.mts +4 -4
- package/src/guard/is-primitive.mts +13 -126
- package/src/guard/is-primitive.test.mts +4 -4
- package/src/guard/is-record.mts +21 -132
- package/src/guard/is-type.mts +201 -238
- package/src/guard/is-type.test.mts +10 -10
- package/src/guard/key-is-in.mts +22 -139
- package/src/index.mts +0 -2
- package/src/iterator/range.mts +29 -62
- package/src/json/json.mts +202 -134
- package/src/json/json.test.mts +1 -3
- package/src/number/branded-types/finite-number.mts +34 -166
- package/src/number/branded-types/int.mts +129 -127
- package/src/number/branded-types/int16.mts +31 -39
- package/src/number/branded-types/int16.test.mts +24 -24
- package/src/number/branded-types/int32.mts +31 -40
- package/src/number/branded-types/int32.test.mts +39 -39
- package/src/number/branded-types/non-negative-finite-number.mts +39 -47
- package/src/number/branded-types/non-negative-int16.mts +33 -43
- package/src/number/branded-types/non-negative-int16.test.mts +16 -16
- package/src/number/branded-types/non-negative-int32.mts +35 -44
- package/src/number/branded-types/non-negative-int32.test.mts +30 -30
- package/src/number/branded-types/non-zero-finite-number.mts +32 -47
- package/src/number/branded-types/non-zero-int.mts +22 -37
- package/src/number/branded-types/non-zero-int16.mts +36 -44
- package/src/number/branded-types/non-zero-int16.test.mts +26 -26
- package/src/number/branded-types/non-zero-int32.mts +38 -45
- package/src/number/branded-types/non-zero-int32.test.mts +45 -42
- package/src/number/branded-types/non-zero-safe-int.mts +48 -49
- package/src/number/branded-types/non-zero-uint16.mts +33 -44
- package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
- package/src/number/branded-types/non-zero-uint32.mts +33 -44
- package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
- package/src/number/branded-types/positive-finite-number.mts +37 -51
- package/src/number/branded-types/positive-int.mts +142 -132
- package/src/number/branded-types/positive-int16.mts +33 -44
- package/src/number/branded-types/positive-int16.test.mts +14 -14
- package/src/number/branded-types/positive-int32.mts +33 -44
- package/src/number/branded-types/positive-int32.test.mts +26 -26
- package/src/number/branded-types/positive-safe-int.mts +169 -43
- package/src/number/branded-types/positive-uint16.mts +33 -44
- package/src/number/branded-types/positive-uint16.test.mts +16 -16
- package/src/number/branded-types/positive-uint32.mts +35 -45
- package/src/number/branded-types/positive-uint32.test.mts +31 -28
- package/src/number/branded-types/safe-int.mts +151 -110
- package/src/number/branded-types/safe-uint.mts +34 -43
- package/src/number/branded-types/uint.mts +129 -38
- package/src/number/branded-types/uint16.mts +35 -43
- package/src/number/branded-types/uint16.test.mts +16 -16
- package/src/number/branded-types/uint32.mts +35 -77
- package/src/number/branded-types/uint32.test.mts +28 -28
- package/src/number/enum/int8.mts +42 -173
- package/src/number/enum/int8.test.mts +9 -9
- package/src/number/enum/uint8.mts +49 -158
- package/src/number/enum/uint8.test.mts +8 -8
- package/src/number/num.mts +157 -212
- package/src/number/num.test.mts +4 -4
- package/src/number/refined-number-utils.mts +109 -26
- package/src/object/object.mts +130 -212
- package/src/object/object.test.mts +29 -0
- package/src/others/cast-mutable.mts +13 -89
- package/src/others/cast-mutable.test.mts +80 -0
- package/src/others/cast-readonly.mts +13 -169
- package/src/others/if-then.mts +6 -83
- package/src/others/map-nullable.mts +12 -136
- package/src/others/map-nullable.test.mts +6 -6
- package/src/others/memoize-function.mts +14 -157
- package/src/others/tuple.mts +33 -151
- package/src/others/unknown-to-string.mts +12 -126
- package/src/others/unknown-to-string.test.mts +13 -1
- package/src/promise/promise.mts +34 -21
- package/src/promise/promise.test.mts +43 -0
- package/dist/array/array-utils.d.mts +0 -2956
- package/dist/array/array-utils.d.mts.map +0 -1
- package/dist/array/array-utils.mjs +0 -1838
- package/dist/array/array-utils.mjs.map +0 -1
- package/dist/functional/optional.d.mts +0 -360
- package/dist/functional/optional.d.mts.map +0 -1
- package/dist/functional/optional.mjs +0 -268
- package/dist/functional/optional.mjs.map +0 -1
- package/dist/functional/result.d.mts +0 -611
- package/dist/functional/result.d.mts.map +0 -1
- package/dist/functional/result.mjs +0 -545
- package/dist/functional/result.mjs.map +0 -1
- package/src/array/array-utils-search.test.mts +0 -169
- package/src/array/array-utils-slicing.test.mts +0 -274
- package/src/array/array-utils.mts +0 -4834
- package/src/functional/optional.mts +0 -591
- package/src/functional/result.mts +0 -986
package/README.md
CHANGED
|
@@ -32,6 +32,10 @@ This library offers a range of utilities, including:
|
|
|
32
32
|
- **JSON Handling**: Type-safe JSON parsing and stringification.
|
|
33
33
|
- **And more**: Including memoization, casting utilities, and other helpful tools.
|
|
34
34
|
|
|
35
|
+
## Documentation
|
|
36
|
+
|
|
37
|
+
- API reference: <https://noshiro-pf.github.io/ts-data-forge/>
|
|
38
|
+
|
|
35
39
|
## Installation
|
|
36
40
|
|
|
37
41
|
```bash
|
|
@@ -235,8 +239,8 @@ assert(clamp(-10) === 0);
|
|
|
235
239
|
// Rounding utilities
|
|
236
240
|
const round2 = Num.round(2);
|
|
237
241
|
|
|
238
|
-
assert(round2(3.
|
|
239
|
-
assert(Num.roundAt(3.
|
|
242
|
+
assert(round2(3.141_59) === 3.14);
|
|
243
|
+
assert(Num.roundAt(3.141_59, 3) === 3.142);
|
|
240
244
|
assert(Num.roundToInt(3.7) === 4);
|
|
241
245
|
|
|
242
246
|
// Type guards
|
|
@@ -284,9 +288,9 @@ assert.throw(() => {
|
|
|
284
288
|
|
|
285
289
|
// Range-constrained types (16-bit, 32-bit)
|
|
286
290
|
const int16 = asInt16(1000); // Int16: [-32768, 32767]
|
|
287
|
-
const uint32 = asUint32(
|
|
291
|
+
const uint32 = asUint32(3_000_000_000); // Uint32: [0, 4294967295]
|
|
288
292
|
assert(int16 === 1000);
|
|
289
|
-
assert(uint32 ===
|
|
293
|
+
assert(uint32 === 3_000_000_000);
|
|
290
294
|
|
|
291
295
|
// Non-zero and positive variants
|
|
292
296
|
const nonZeroInt = asNonZeroInt(5); // NonZeroInt - excludes zero
|
|
@@ -296,9 +300,9 @@ assert(positiveInt === 10);
|
|
|
296
300
|
|
|
297
301
|
// Type-safe arithmetic with automatic clamping
|
|
298
302
|
const sum = Int16.add(int16, asInt16(2000)); // Int16 (3000)
|
|
299
|
-
const clamped = Int16.clamp(
|
|
303
|
+
const clamped = Int16.clamp(100_000); // Int16 (32767 - clamped to MAX_VALUE)
|
|
300
304
|
assert(sum === 3000);
|
|
301
|
-
assert(clamped ===
|
|
305
|
+
assert(clamped === 32_767);
|
|
302
306
|
|
|
303
307
|
// Safe division with non-zero types
|
|
304
308
|
const ratio = NonZeroInt.div(asNonZeroInt(10), nonZeroInt); // No division by zero risk
|
|
@@ -306,8 +310,8 @@ assert(ratio === 2);
|
|
|
306
310
|
|
|
307
311
|
// Random generation within type constraints
|
|
308
312
|
const randomInt16 = Int16.random(); // Int16 (random value in valid range)
|
|
309
|
-
assert(-
|
|
310
|
-
assert(randomInt16 <=
|
|
313
|
+
assert(-32_768 <= randomInt16);
|
|
314
|
+
assert(randomInt16 <= 32_767);
|
|
311
315
|
```
|
|
312
316
|
|
|
313
317
|
### 4. Array Utilities with `Arr`
|
|
@@ -480,25 +484,45 @@ assert.deepStrictEqual(mut_stepValues, [0, 2, 4, 6, 8]);
|
|
|
480
484
|
Safely work with readonly types when interfacing with mutable APIs.
|
|
481
485
|
|
|
482
486
|
```tsx
|
|
487
|
+
import type * as React from 'react';
|
|
483
488
|
import { castMutable } from 'ts-data-forge';
|
|
484
489
|
|
|
485
490
|
// Example: Material-UI Autocomplete
|
|
486
491
|
import { Autocomplete, TextField } from '@mui/material';
|
|
487
492
|
|
|
493
|
+
// Immer.js example
|
|
494
|
+
import { produce } from 'immer';
|
|
495
|
+
|
|
488
496
|
export const SomeComponent: React.FC = () => (
|
|
489
497
|
<Autocomplete
|
|
490
498
|
options={castMutable(readonlyOptions)}
|
|
491
|
-
renderInput={(
|
|
492
|
-
|
|
499
|
+
renderInput={({
|
|
500
|
+
InputLabelProps,
|
|
501
|
+
InputProps,
|
|
502
|
+
disabled,
|
|
503
|
+
fullWidth,
|
|
504
|
+
id,
|
|
505
|
+
inputProps,
|
|
506
|
+
size,
|
|
507
|
+
}) => (
|
|
508
|
+
<TextField
|
|
509
|
+
slotProps={{
|
|
510
|
+
inputLabel: InputLabelProps,
|
|
511
|
+
input: InputProps,
|
|
512
|
+
htmlInput: inputProps,
|
|
513
|
+
}}
|
|
514
|
+
disabled={disabled}
|
|
515
|
+
fullWidth={fullWidth}
|
|
516
|
+
id={id}
|
|
517
|
+
size={size}
|
|
518
|
+
placeholder="Select an option"
|
|
519
|
+
/>
|
|
493
520
|
)}
|
|
494
521
|
/>
|
|
495
522
|
);
|
|
496
523
|
|
|
497
524
|
const readonlyOptions: readonly string[] = ['Option 1', 'Option 2', 'Option 3'];
|
|
498
525
|
|
|
499
|
-
// Immer.js example
|
|
500
|
-
import { produce } from 'immer';
|
|
501
|
-
|
|
502
526
|
type State = Readonly<{
|
|
503
527
|
items: readonly string[];
|
|
504
528
|
}>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an array of zeros with the specified length.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const emptyZeros = Arr.zeros(0);
|
|
8
|
+
* const threeZeros = Arr.zeros(3);
|
|
9
|
+
*
|
|
10
|
+
* assert.deepStrictEqual(emptyZeros, []);
|
|
11
|
+
* assert.deepStrictEqual(threeZeros, [0, 0, 0]);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const zeros: <N extends SizeType.ArgArr>(len: N) => N extends SmallUint ? ArrayOfLength<N, 0> : N extends SizeType.ArgArrPositive ? NonEmptyArray<0> : readonly 0[];
|
|
15
|
+
/**
|
|
16
|
+
* Creates a sequence of consecutive integers from 0 to `len-1`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* const emptySeq = Arr.seq(0);
|
|
22
|
+
* const firstFive = Arr.seq(5);
|
|
23
|
+
*
|
|
24
|
+
* assert.deepStrictEqual(emptySeq, []);
|
|
25
|
+
* assert.deepStrictEqual(firstFive, [0, 1, 2, 3, 4]);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare const seq: <N extends SizeType.ArgArr>(len: N) => N extends SmallUint ? Seq<N> : N extends SizeType.ArgArrPositive ? NonEmptyArray<SizeType.Arr> : readonly SizeType.Arr[];
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new array of the specified length, filled with the initial value.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* const threeOnes = Arr.create(3, 1);
|
|
36
|
+
* const emptyStrings = Arr.create(0, 'Ada');
|
|
37
|
+
*
|
|
38
|
+
* assert.deepStrictEqual(threeOnes, [1, 1, 1]);
|
|
39
|
+
* assert.deepStrictEqual(emptyStrings, []);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare const create: <const V, N extends SizeType.ArgArr>(len: N, init: V) => N extends SmallUint ? ArrayOfLength<N, V> : N extends SizeType.ArgArrPositive ? NonEmptyArray<V> : readonly V[];
|
|
43
|
+
/**
|
|
44
|
+
* Alias for `create`.
|
|
45
|
+
*
|
|
46
|
+
* @see {@link create}
|
|
47
|
+
*/
|
|
48
|
+
export declare const newArray: <const V, N extends SizeType.ArgArr>(len: N, init: V) => N extends SmallUint ? ArrayOfLength<N, V> : N extends SizeType.ArgArrPositive ? NonEmptyArray<V> : readonly V[];
|
|
49
|
+
/**
|
|
50
|
+
* Generates an array from a generator function.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
*
|
|
54
|
+
* ```ts
|
|
55
|
+
* const numbers = Arr.generate(function* () {
|
|
56
|
+
* yield 1;
|
|
57
|
+
* yield 2;
|
|
58
|
+
* yield 3;
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* assert.deepStrictEqual(numbers, [1, 2, 3]);
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare const generate: <T>(generatorFn: () => Generator<T, void, unknown>) => readonly T[];
|
|
65
|
+
/**
|
|
66
|
+
* Generates an array from an async generator function.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
*
|
|
70
|
+
* ```ts
|
|
71
|
+
* const values = await Arr.generateAsync(async function* () {
|
|
72
|
+
* yield 'Ada';
|
|
73
|
+
* await Promise.resolve();
|
|
74
|
+
* yield 'Lovelace';
|
|
75
|
+
* });
|
|
76
|
+
*
|
|
77
|
+
* assert.deepStrictEqual(values, ['Ada', 'Lovelace']);
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare const generateAsync: <T>(generatorFn: () => AsyncGenerator<T, void, unknown>) => Promise<readonly T[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Creates a shallow copy of an array.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
*
|
|
86
|
+
* ```ts
|
|
87
|
+
* const original = [{ id: 1 }, { id: 2 }] as const;
|
|
88
|
+
* const cloned = Arr.copy(original);
|
|
89
|
+
*
|
|
90
|
+
* assert.deepStrictEqual(cloned, original);
|
|
91
|
+
* assert.notStrictEqual(cloned, original);
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare const copy: <const Ar extends readonly unknown[]>(array: Ar) => Ar;
|
|
95
|
+
type LT = Readonly<{
|
|
96
|
+
[N in SmallUint]: Index<N>;
|
|
97
|
+
}>;
|
|
98
|
+
type RangeList<S extends SmallUint, E extends SmallUint> = BoolOr<IsUnion<S>, IsUnion<E>> extends true ? readonly RelaxedExclude<LT[E], LT[Min<S>]>[] : List.Skip<S, Seq<E>>;
|
|
99
|
+
/**
|
|
100
|
+
* Creates an array of numbers within a specified range with optional step.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
*
|
|
104
|
+
* ```ts
|
|
105
|
+
* const ascending = Arr.range(asUint32(1), asUint32(5));
|
|
106
|
+
* const empty = Arr.range(asUint32(2), asUint32(2));
|
|
107
|
+
*
|
|
108
|
+
* assert.deepStrictEqual(ascending, [1, 2, 3, 4]);
|
|
109
|
+
* assert.deepStrictEqual(empty, []);
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function range<S extends SmallUint, E extends SmallUint>(start: S, end: E, step?: 1): RangeList<S, E>;
|
|
113
|
+
export declare function range(start: SafeUintWithSmallInt, end: SafeUintWithSmallInt, step?: PositiveSafeIntWithSmallInt): readonly SafeUint[];
|
|
114
|
+
export declare function range(start: SafeIntWithSmallInt, end: SafeIntWithSmallInt, step?: NonZeroSafeIntWithSmallInt): readonly SafeInt[];
|
|
115
|
+
export {};
|
|
116
|
+
//# sourceMappingURL=array-utils-creation.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils-creation.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-creation.mts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,EAC7C,KAAK,CAAC,KACL,CAAC,SAAS,SAAS,GAClB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,CAAC,SAAS,QAAQ,CAAC,cAAc,GAC/B,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS,CAAC,EAEiC,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,EAC3C,KAAK,CAAC,KACL,CAAC,SAAS,SAAS,GAClB,GAAG,CAAC,CAAC,CAAC,GACN,CAAC,SAAS,QAAQ,CAAC,cAAc,GAC/B,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAC3B,SAAS,QAAQ,CAAC,GAAG,EAEwB,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,MAAM,EACvD,KAAK,CAAC,EACN,MAAM,CAAC,KACN,CAAC,SAAS,SAAS,GAClB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,CAAC,SAAS,QAAQ,CAAC,cAAc,GAC/B,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS,CAAC,EAE+C,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SAhBQ,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,MAAM,OAClD,CAAC,QACA,CAAC,KACN,CAAC,SAAS,SAAS,GAClB,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,CAAC,SAAS,QAAQ,CAAC,cAAc,GAC/B,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS,CAAC,EASc,CAAC;AAE/B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EACxB,aAAa,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAC7C,SAAS,CAAC,EAA+B,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,aAAa,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAClD,OAAO,CAAC,SAAS,CAAC,EAAE,CAAmC,CAAC;AAE3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE,KAAG,EAEtC,CAAC;AAEjC,KAAK,EAAE,GAAG,QAAQ,CAAC;KAChB,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH,KAAK,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,IACrD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACvC,SAAS,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAY3B;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAC5D,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,CAAC,EACN,IAAI,CAAC,EAAE,CAAC,GACP,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnB,wBAAgB,KAAK,CACnB,KAAK,EAAE,oBAAoB,EAC3B,GAAG,EAAE,oBAAoB,EACzB,IAAI,CAAC,EAAE,2BAA2B,GACjC,SAAS,QAAQ,EAAE,CAAC;AAEvB,wBAAgB,KAAK,CACnB,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,mBAAmB,EACxB,IAAI,CAAC,EAAE,0BAA0B,GAChC,SAAS,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { range as range$1 } from '../../iterator/range.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an array of zeros with the specified length.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const emptyZeros = Arr.zeros(0);
|
|
10
|
+
* const threeZeros = Arr.zeros(3);
|
|
11
|
+
*
|
|
12
|
+
* assert.deepStrictEqual(emptyZeros, []);
|
|
13
|
+
* assert.deepStrictEqual(threeZeros, [0, 0, 0]);
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
const zeros = (len) =>
|
|
17
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
18
|
+
Array.from({ length: len }).fill(0);
|
|
19
|
+
/**
|
|
20
|
+
* Creates a sequence of consecutive integers from 0 to `len-1`.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
*
|
|
24
|
+
* ```ts
|
|
25
|
+
* const emptySeq = Arr.seq(0);
|
|
26
|
+
* const firstFive = Arr.seq(5);
|
|
27
|
+
*
|
|
28
|
+
* assert.deepStrictEqual(emptySeq, []);
|
|
29
|
+
* assert.deepStrictEqual(firstFive, [0, 1, 2, 3, 4]);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
const seq = (len) =>
|
|
33
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
34
|
+
Array.from({ length: len }, (_, i) => i);
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new array of the specified length, filled with the initial value.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
*
|
|
40
|
+
* ```ts
|
|
41
|
+
* const threeOnes = Arr.create(3, 1);
|
|
42
|
+
* const emptyStrings = Arr.create(0, 'Ada');
|
|
43
|
+
*
|
|
44
|
+
* assert.deepStrictEqual(threeOnes, [1, 1, 1]);
|
|
45
|
+
* assert.deepStrictEqual(emptyStrings, []);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
const create = (len, init) =>
|
|
49
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
50
|
+
Array.from({ length: Math.max(0, len) }, () => init);
|
|
51
|
+
/**
|
|
52
|
+
* Alias for `create`.
|
|
53
|
+
*
|
|
54
|
+
* @see {@link create}
|
|
55
|
+
*/
|
|
56
|
+
const newArray = create;
|
|
57
|
+
/**
|
|
58
|
+
* Generates an array from a generator function.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
*
|
|
62
|
+
* ```ts
|
|
63
|
+
* const numbers = Arr.generate(function* () {
|
|
64
|
+
* yield 1;
|
|
65
|
+
* yield 2;
|
|
66
|
+
* yield 3;
|
|
67
|
+
* });
|
|
68
|
+
*
|
|
69
|
+
* assert.deepStrictEqual(numbers, [1, 2, 3]);
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
const generate = (generatorFn) => Array.from(generatorFn());
|
|
73
|
+
/**
|
|
74
|
+
* Generates an array from an async generator function.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
*
|
|
78
|
+
* ```ts
|
|
79
|
+
* const values = await Arr.generateAsync(async function* () {
|
|
80
|
+
* yield 'Ada';
|
|
81
|
+
* await Promise.resolve();
|
|
82
|
+
* yield 'Lovelace';
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* assert.deepStrictEqual(values, ['Ada', 'Lovelace']);
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
const generateAsync = (generatorFn) => Array.fromAsync(generatorFn());
|
|
89
|
+
/**
|
|
90
|
+
* Creates a shallow copy of an array.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
*
|
|
94
|
+
* ```ts
|
|
95
|
+
* const original = [{ id: 1 }, { id: 2 }] as const;
|
|
96
|
+
* const cloned = Arr.copy(original);
|
|
97
|
+
*
|
|
98
|
+
* assert.deepStrictEqual(cloned, original);
|
|
99
|
+
* assert.notStrictEqual(cloned, original);
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
const copy = (array) =>
|
|
103
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
104
|
+
array.slice();
|
|
105
|
+
function range(start, end, step = 1) {
|
|
106
|
+
return Array.from(range$1(start, end, step));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export { copy, create, generate, generateAsync, newArray, range, seq, zeros };
|
|
110
|
+
//# sourceMappingURL=array-utils-creation.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils-creation.mjs","sources":["../../../src/array/impl/array-utils-creation.mts"],"sourcesContent":[null],"names":["rangeIterator"],"mappings":";;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,KAAK,GAAG,CACnB,GAAM;AAMN;AACA,KAAK,CAAC,IAAI,CAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC;;;;;;;;;;;;AAYG;AACI,MAAM,GAAG,GAAG,CACjB,GAAM;AAMN;AACA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AAEzC;;;;;;;;;;;;AAYG;MACU,MAAM,GAAG,CACpB,GAAM,EACN,IAAO;AAMP;AACA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI;AAErD;;;;AAIG;AACI,MAAM,QAAQ,GAAG;AAExB;;;;;;;;;;;;;;AAcG;AACI,MAAM,QAAQ,GAAG,CACtB,WAA8C,KAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AAE3C;;;;;;;;;;;;;;AAcG;AACI,MAAM,aAAa,GAAG,CAC3B,WAAmD,KACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;AAEzD;;;;;;;;;;;;AAYG;AACI,MAAM,IAAI,GAAG,CAAsC,KAAS;AACjE;AACA,KAAK,CAAC,KAAK;AAoDP,SAAU,KAAK,CACnB,KAA0B,EAC1B,GAAwB,EACxB,OAAmC,CAAC,EAAA;AAEpC,IAAA,OAAO,KAAK,CAAC,IAAI,CAACA,OAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACpD;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely retrieves an element at a given index from an array, returning an Optional.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const letters: readonly string[] = ['a', 'b', 'c'];
|
|
8
|
+
*
|
|
9
|
+
* const two = Arr.at(letters, 1);
|
|
10
|
+
* const last = Arr.at(-1)(letters);
|
|
11
|
+
* const missing = Arr.at(letters, 5);
|
|
12
|
+
*
|
|
13
|
+
* assert.deepStrictEqual(two, Optional.some('b'));
|
|
14
|
+
* assert.deepStrictEqual(last, Optional.some('c'));
|
|
15
|
+
* assert.deepStrictEqual(missing, Optional.none);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function at<const Ar extends readonly unknown[]>(array: Ar, index: ArgArrayIndexWithNegative<Ar>): Optional<Ar[number]>;
|
|
19
|
+
export declare function at(index: SizeType.ArgArrWithNegative): <E>(array: readonly E[]) => Optional<E>;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the first element of an array as an Optional.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* const users = [{ id: 1 }, { id: 2 }];
|
|
27
|
+
* const empty: { id: number }[] = [];
|
|
28
|
+
*
|
|
29
|
+
* const first = Arr.head(users);
|
|
30
|
+
* const none = Arr.head(empty);
|
|
31
|
+
*
|
|
32
|
+
* assert.deepStrictEqual(first, Optional.some({ id: 1 }));
|
|
33
|
+
* assert.deepStrictEqual(none, Optional.none);
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare const head: <const Ar extends readonly unknown[]>(array: Ar) => Ar extends readonly [] ? None : Ar extends readonly [infer E, ...unknown[]] ? Some<E> : Ar extends NonEmptyArray<infer E> ? Some<E> : Optional<Ar[number]>;
|
|
37
|
+
/**
|
|
38
|
+
* Returns the last element of an array as an Optional.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
*
|
|
42
|
+
* ```ts
|
|
43
|
+
* const queue = ['first', 'second'];
|
|
44
|
+
* const emptyQueue: string[] = [];
|
|
45
|
+
*
|
|
46
|
+
* const lastValue = Arr.last(queue);
|
|
47
|
+
* const none = Arr.last(emptyQueue);
|
|
48
|
+
*
|
|
49
|
+
* assert.deepStrictEqual(lastValue, Optional.some('second'));
|
|
50
|
+
* assert.deepStrictEqual(none, Optional.none);
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare const last: <const Ar extends readonly unknown[]>(array: Ar) => Ar extends readonly [] ? None : Ar extends readonly [...unknown[], infer E] ? Some<E> : Ar extends NonEmptyArray<infer E> ? Some<E> : Optional<Ar[number]>;
|
|
54
|
+
/**
|
|
55
|
+
* Alias for `head`.
|
|
56
|
+
*
|
|
57
|
+
* @see {@link head}
|
|
58
|
+
*/
|
|
59
|
+
export declare const first: <const Ar extends readonly unknown[]>(array: Ar) => Ar extends readonly [] ? None : Ar extends readonly [infer E, ...unknown[]] ? Some<E> : Ar extends NonEmptyArray<infer E> ? Some<E> : Optional<Ar[number]>;
|
|
60
|
+
//# sourceMappingURL=array-utils-element-access.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils-element-access.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-element-access.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;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;AAyB3C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EACtD,OAAO,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;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EACtD,OAAO,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,SA7CS,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,CAqCF,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { none } from '../../functional/optional/impl/optional-none.mjs';
|
|
2
|
+
import { some } from '../../functional/optional/impl/optional-some.mjs';
|
|
3
|
+
import { pipe } from '../../functional/pipe.mjs';
|
|
4
|
+
|
|
5
|
+
function at(...args) {
|
|
6
|
+
switch (args.length) {
|
|
7
|
+
case 2: {
|
|
8
|
+
const [array, index$1] = args;
|
|
9
|
+
return pipe(index$1 < 0 ? array.length + index$1 : index$1).map((normalizedIndex) => normalizedIndex < 0 || normalizedIndex >= array.length
|
|
10
|
+
? none
|
|
11
|
+
: // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
12
|
+
some(array[normalizedIndex])).value;
|
|
13
|
+
}
|
|
14
|
+
case 1: {
|
|
15
|
+
const [index] = args;
|
|
16
|
+
return (array) => at(array, index);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns the first element of an array as an Optional.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* const users = [{ id: 1 }, { id: 2 }];
|
|
27
|
+
* const empty: { id: number }[] = [];
|
|
28
|
+
*
|
|
29
|
+
* const first = Arr.head(users);
|
|
30
|
+
* const none = Arr.head(empty);
|
|
31
|
+
*
|
|
32
|
+
* assert.deepStrictEqual(first, Optional.some({ id: 1 }));
|
|
33
|
+
* assert.deepStrictEqual(none, Optional.none);
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
const head = (array) =>
|
|
37
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
38
|
+
(array.length === 0 ? none : some(array.at(0)));
|
|
39
|
+
/**
|
|
40
|
+
* Returns the last element of an array as an Optional.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* const queue = ['first', 'second'];
|
|
46
|
+
* const emptyQueue: string[] = [];
|
|
47
|
+
*
|
|
48
|
+
* const lastValue = Arr.last(queue);
|
|
49
|
+
* const none = Arr.last(emptyQueue);
|
|
50
|
+
*
|
|
51
|
+
* assert.deepStrictEqual(lastValue, Optional.some('second'));
|
|
52
|
+
* assert.deepStrictEqual(none, Optional.none);
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
const last = (array) =>
|
|
56
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
57
|
+
(array.length === 0 ? none : some(array.at(-1)));
|
|
58
|
+
/**
|
|
59
|
+
* Alias for `head`.
|
|
60
|
+
*
|
|
61
|
+
* @see {@link head}
|
|
62
|
+
*/
|
|
63
|
+
const first = head;
|
|
64
|
+
|
|
65
|
+
export { at, first, head, last };
|
|
66
|
+
//# sourceMappingURL=array-utils-element-access.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils-element-access.mjs","sources":["../../../src/array/impl/array-utils-element-access.mts"],"sourcesContent":[null],"names":["index","Optional.none","Optional.some"],"mappings":";;;;AA8BM,SAAU,EAAE,CAChB,GAAG,IAE8C,EAAA;AAEjD,IAAA,QAAQ,IAAI,CAAC,MAAM;QACjB,KAAK,CAAC,EAAE;AACN,YAAA,MAAM,CAAC,KAAK,EAAEA,OAAK,CAAC,GAAG,IAAI;AAC3B,YAAA,OAAO,IAAI,CAACA,OAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAGA,OAAK,GAAGA,OAAK,CAAC,CAAC,GAAG,CACvD,CAAC,eAAe,KACd,eAAe,GAAG,CAAC,IAAI,eAAe,IAAI,KAAK,CAAC;kBAC5CC;AACF;oBACEC,IAAa,CAAC,KAAK,CAAC,eAAe,CAAE,CAAC,CAC7C,CAAC,KAAK;QACT;QACA,KAAK,CAAC,EAAE;AACN,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI;YACpB,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QACpC;;AAEJ;AAEA;;;;;;;;;;;;;;;AAeG;AACI,MAAM,IAAI,GAAG,CAClB,KAAS;AAQT;AACA,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAGD,IAAa,GAAGC,IAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;AAeG;AACI,MAAM,IAAI,GAAG,CAClB,KAAS;AAQT;AACA,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAGD,IAAa,GAAGC,IAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAEnE;;;;AAIG;AACI,MAAM,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns an iterator of `[index, value]` pairs for an array.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const tags = ['alpha', 'beta', 'gamma'] as const;
|
|
8
|
+
*
|
|
9
|
+
* const entryList = Array.from(
|
|
10
|
+
* Arr.entries(tags),
|
|
11
|
+
* ([index, tag]) => [Number(index), tag] as const,
|
|
12
|
+
* );
|
|
13
|
+
*
|
|
14
|
+
* assert.deepStrictEqual(
|
|
15
|
+
* entryList,
|
|
16
|
+
* Array.from([
|
|
17
|
+
* [0, 'alpha'],
|
|
18
|
+
* [1, 'beta'],
|
|
19
|
+
* [2, 'gamma'],
|
|
20
|
+
* ]),
|
|
21
|
+
* );
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const entries: <E>(array: readonly E[]) => ArrayIterator<readonly [SizeType.Arr, E]>;
|
|
25
|
+
/**
|
|
26
|
+
* Returns an iterator of values for an array.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
*
|
|
30
|
+
* ```ts
|
|
31
|
+
* const players = ['Ada', 'Grace', 'Alan'];
|
|
32
|
+
*
|
|
33
|
+
* const valueList = Array.from(Arr.values(players));
|
|
34
|
+
*
|
|
35
|
+
* assert.deepStrictEqual(valueList, players);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const values: <E>(array: readonly E[]) => ArrayIterator<E>;
|
|
39
|
+
/**
|
|
40
|
+
* Returns an iterator of indices for an array.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* const items = ['zero', 'one', 'two'] as const;
|
|
46
|
+
*
|
|
47
|
+
* const indexList = Array.from(Arr.indices(items));
|
|
48
|
+
*
|
|
49
|
+
* assert.deepStrictEqual(indexList, [0, 1, 2]);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare const indices: <E>(array: readonly E[]) => ArrayIterator<SizeType.Arr>;
|
|
53
|
+
/**
|
|
54
|
+
* Alias for `indices`.
|
|
55
|
+
*
|
|
56
|
+
* @see {@link indices}
|
|
57
|
+
*/
|
|
58
|
+
export declare const keys: <E>(array: readonly E[]) => ArrayIterator<SizeType.Arr>;
|
|
59
|
+
//# sourceMappingURL=array-utils-iterators.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils-iterators.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-iterators.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,OAAO,GAAc,CAAC,EACjC,OAAO,SAAS,CAAC,EAAE,KAClB,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAI1C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,GAAc,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,KAAG,aAAa,CAAC,CAAC,CAIxE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,GAAc,CAAC,EACjC,OAAO,SAAS,CAAC,EAAE,KAClB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAI5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAbiB,CAAC,SAC1B,SAAS,CAAC,EAAE,KAClB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAWF,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import '../../number/branded-types/finite-number.mjs';
|
|
2
|
+
import '../../number/branded-types/int.mjs';
|
|
3
|
+
import '../../number/branded-types/int16.mjs';
|
|
4
|
+
import '../../number/branded-types/int32.mjs';
|
|
5
|
+
import '../../number/branded-types/non-negative-finite-number.mjs';
|
|
6
|
+
import '../../number/branded-types/non-negative-int16.mjs';
|
|
7
|
+
import '../../number/branded-types/non-negative-int32.mjs';
|
|
8
|
+
import '../../number/branded-types/non-zero-finite-number.mjs';
|
|
9
|
+
import '../../number/branded-types/non-zero-int.mjs';
|
|
10
|
+
import '../../number/branded-types/non-zero-int16.mjs';
|
|
11
|
+
import '../../number/branded-types/non-zero-int32.mjs';
|
|
12
|
+
import '../../number/branded-types/non-zero-safe-int.mjs';
|
|
13
|
+
import '../../number/branded-types/non-zero-uint16.mjs';
|
|
14
|
+
import '../../number/branded-types/non-zero-uint32.mjs';
|
|
15
|
+
import '../../number/branded-types/positive-finite-number.mjs';
|
|
16
|
+
import '../../number/branded-types/positive-int.mjs';
|
|
17
|
+
import '../../number/branded-types/positive-int16.mjs';
|
|
18
|
+
import '../../number/branded-types/positive-int32.mjs';
|
|
19
|
+
import '../../number/branded-types/positive-safe-int.mjs';
|
|
20
|
+
import '../../number/branded-types/positive-uint16.mjs';
|
|
21
|
+
import '../../number/branded-types/positive-uint32.mjs';
|
|
22
|
+
import '../../number/branded-types/safe-int.mjs';
|
|
23
|
+
import '../../number/branded-types/safe-uint.mjs';
|
|
24
|
+
import '../../number/branded-types/uint.mjs';
|
|
25
|
+
import '../../number/branded-types/uint16.mjs';
|
|
26
|
+
import { asUint32 } from '../../number/branded-types/uint32.mjs';
|
|
27
|
+
import '../../number/enum/int8.mjs';
|
|
28
|
+
import '../../number/enum/uint8.mjs';
|
|
29
|
+
import '../../number/num.mjs';
|
|
30
|
+
import '../../number/refined-number-utils.mjs';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Returns an iterator of `[index, value]` pairs for an array.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* const tags = ['alpha', 'beta', 'gamma'] as const;
|
|
39
|
+
*
|
|
40
|
+
* const entryList = Array.from(
|
|
41
|
+
* Arr.entries(tags),
|
|
42
|
+
* ([index, tag]) => [Number(index), tag] as const,
|
|
43
|
+
* );
|
|
44
|
+
*
|
|
45
|
+
* assert.deepStrictEqual(
|
|
46
|
+
* entryList,
|
|
47
|
+
* Array.from([
|
|
48
|
+
* [0, 'alpha'],
|
|
49
|
+
* [1, 'beta'],
|
|
50
|
+
* [2, 'gamma'],
|
|
51
|
+
* ]),
|
|
52
|
+
* );
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
const entries = function* (array) {
|
|
56
|
+
for (const [index, value] of array.entries()) {
|
|
57
|
+
yield [asUint32(index), value];
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Returns an iterator of values for an array.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
*
|
|
65
|
+
* ```ts
|
|
66
|
+
* const players = ['Ada', 'Grace', 'Alan'];
|
|
67
|
+
*
|
|
68
|
+
* const valueList = Array.from(Arr.values(players));
|
|
69
|
+
*
|
|
70
|
+
* assert.deepStrictEqual(valueList, players);
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
const values = function* (array) {
|
|
74
|
+
for (const value of array.values()) {
|
|
75
|
+
yield value;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Returns an iterator of indices for an array.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
*
|
|
83
|
+
* ```ts
|
|
84
|
+
* const items = ['zero', 'one', 'two'] as const;
|
|
85
|
+
*
|
|
86
|
+
* const indexList = Array.from(Arr.indices(items));
|
|
87
|
+
*
|
|
88
|
+
* assert.deepStrictEqual(indexList, [0, 1, 2]);
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
const indices = function* (array) {
|
|
92
|
+
for (const key of array.keys()) {
|
|
93
|
+
yield asUint32(key);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Alias for `indices`.
|
|
98
|
+
*
|
|
99
|
+
* @see {@link indices}
|
|
100
|
+
*/
|
|
101
|
+
const keys = indices;
|
|
102
|
+
|
|
103
|
+
export { entries, indices, keys, values };
|
|
104
|
+
//# sourceMappingURL=array-utils-iterators.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils-iterators.mjs","sources":["../../../src/array/impl/array-utils-iterators.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,OAAO,GAAG,WACrB,KAAmB,EAAA;AAEnB,IAAA,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;QAC5C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAU;IACzC;AACF;AAEA;;;;;;;;;;;;AAYG;AACI,MAAM,MAAM,GAAG,WAAc,KAAmB,EAAA;IACrD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;AAClC,QAAA,MAAM,KAAK;IACb;AACF;AAEA;;;;;;;;;;;;AAYG;AACI,MAAM,OAAO,GAAG,WACrB,KAAmB,EAAA;IAEnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;AAC9B,QAAA,MAAM,QAAQ,CAAC,GAAG,CAAC;IACrB;AACF;AAEA;;;;AAIG;AACI,MAAM,IAAI,GAAG;;;;"}
|