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
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type UnwrapOk } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Unwraps a `Result`, returning the success value or a default value if it is
|
|
4
|
+
* `Result.Err`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const okValue = Result.ok(10);
|
|
10
|
+
* const errValue = Result.err('fail');
|
|
11
|
+
*
|
|
12
|
+
* assert(Result.unwrapOkOr(okValue, 0) === 10);
|
|
13
|
+
* assert(Result.unwrapOkOr(errValue, 0) === 0);
|
|
14
|
+
*
|
|
15
|
+
* const unwrapWithDefault = Result.unwrapOkOr(5);
|
|
16
|
+
*
|
|
17
|
+
* assert(unwrapWithDefault(Result.ok(3)) === 3);
|
|
18
|
+
* assert(unwrapWithDefault(Result.err('no data')) === 5);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @template R The `UnknownResult` type to unwrap.
|
|
22
|
+
* @template D The type of the default value.
|
|
23
|
+
* @param result The `Result` to unwrap.
|
|
24
|
+
* @param defaultValue The value to return if `result` is `Result.Err`.
|
|
25
|
+
* @returns The success value if `Result.Ok`, otherwise `defaultValue`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function unwrapOkOr<R extends UnknownResult, D>(result: R, defaultValue: D): D | UnwrapOk<R>;
|
|
28
|
+
export declare function unwrapOkOr<S, D>(defaultValue: D): <E>(result: Result<S, E>) => D | S;
|
|
29
|
+
//# sourceMappingURL=result-unwrap-ok-or.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-unwrap-ok-or.d.mts","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-unwrap-ok-or.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,EACnD,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,CAAC,GACd,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAGnB,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC7B,YAAY,EAAE,CAAC,GACd,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { unwrapOk } from './result-unwrap-ok.mjs';
|
|
2
|
+
|
|
3
|
+
function unwrapOkOr(...args) {
|
|
4
|
+
switch (args.length) {
|
|
5
|
+
case 2: {
|
|
6
|
+
// Direct version: first argument is result
|
|
7
|
+
const [result, defaultValue] = args;
|
|
8
|
+
return unwrapOkOrImpl(result, defaultValue);
|
|
9
|
+
}
|
|
10
|
+
case 1: {
|
|
11
|
+
// Curried version
|
|
12
|
+
const [defaultValue] = args;
|
|
13
|
+
return (result) => unwrapOkOrImpl(result, defaultValue);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const unwrapOkOrImpl = (result, defaultValue) => unwrapOk(result) ?? defaultValue;
|
|
18
|
+
|
|
19
|
+
export { unwrapOkOr };
|
|
20
|
+
//# sourceMappingURL=result-unwrap-ok-or.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-unwrap-ok-or.mjs","sources":["../../../../src/functional/result/impl/result-unwrap-ok-or.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAsCM,SAAU,UAAU,CACxB,GAAG,IAAwE,EAAA;AAE3E,IAAA,QAAQ,IAAI,CAAC,MAAM;QACjB,KAAK,CAAC,EAAE;;AAEN,YAAA,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI;AACnC,YAAA,OAAO,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;QAC7C;QAEA,KAAK,CAAC,EAAE;;AAEN,YAAA,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI;YAC3B,OAAO,CAAC,MAAS,KAAK,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;QAC5D;;AAEJ;AAEA,MAAM,cAAc,GAAG,CACrB,MAAS,EACT,YAAe,KACK,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type UnwrapOk } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Safely unwraps the success value, returning `undefined` for failures.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* const okResult = Result.ok(42);
|
|
9
|
+
* const errResult = Result.err('oops');
|
|
10
|
+
*
|
|
11
|
+
* // Result.unwrapOk returns the value for Ok results
|
|
12
|
+
*
|
|
13
|
+
* assert(Result.unwrapOk(okResult) === 42);
|
|
14
|
+
*
|
|
15
|
+
* // Result.unwrapOk returns undefined for Err results
|
|
16
|
+
*
|
|
17
|
+
* // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
|
|
18
|
+
* assert(Result.unwrapOk(errResult) === undefined);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function unwrapOk<R extends Ok<unknown>>(result: R): UnwrapOk<R>;
|
|
22
|
+
export declare function unwrapOk<R extends UnknownResult>(result: R): UnwrapOk<R> | undefined;
|
|
23
|
+
//# sourceMappingURL=result-unwrap-ok.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-unwrap-ok.d.mts","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-unwrap-ok.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,wBAAgB,QAAQ,CAAC,CAAC,SAAS,aAAa,EAC9C,MAAM,EAAE,CAAC,GACR,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { isOk } from './result-is-ok.mjs';
|
|
2
|
+
|
|
3
|
+
function unwrapOk(result) {
|
|
4
|
+
return isOk(result)
|
|
5
|
+
? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
6
|
+
result.value
|
|
7
|
+
: undefined;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { unwrapOk };
|
|
11
|
+
//# sourceMappingURL=result-unwrap-ok.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-unwrap-ok.mjs","sources":["../../../../src/functional/result/impl/result-unwrap-ok.mts"],"sourcesContent":[null],"names":[],"mappings":";;AA2BM,SAAU,QAAQ,CACtB,MAAS,EAAA;IAET,OAAO,IAAI,CAAC,MAAM;AAChB;AACG,YAAA,MAAM,CAAC;UACR,SAAS;AACf;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type UnwrapErr, type UnwrapOk } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Unwraps a `Result`, returning the success value. Throws an error if the
|
|
4
|
+
* `Result` is `Result.Err`.
|
|
5
|
+
*
|
|
6
|
+
* This is useful when you're confident that a Result should contain a success
|
|
7
|
+
* value and want to treat errors as exceptional conditions. The error message
|
|
8
|
+
* will be constructed from the error value using the provided string
|
|
9
|
+
* conversion function.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* const okResult = Result.ok('data');
|
|
15
|
+
* const errResult = Result.err(new Error('fail'));
|
|
16
|
+
*
|
|
17
|
+
* assert(Result.unwrapThrow(okResult) === 'data');
|
|
18
|
+
* assert.throws(() => Result.unwrapThrow(errResult), /fail/u);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @template R The `UnknownResult` type to unwrap.
|
|
22
|
+
* @param result The `Result` to unwrap.
|
|
23
|
+
* @param toStr An optional function to convert the error value to a string
|
|
24
|
+
* for the error message. Defaults to `String`.
|
|
25
|
+
* @returns The success value if `Result.Ok`.
|
|
26
|
+
* @throws {Error} Error with the stringified error value if the `Result` is
|
|
27
|
+
* `Result.Err`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const unwrapThrow: <R extends UnknownResult>(result: R, toStr?: (e: UnwrapErr<R>) => string) => UnwrapOk<R>;
|
|
30
|
+
//# sourceMappingURL=result-unwrap-throw.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-unwrap-throw.d.mts","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-unwrap-throw.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,aAAa,EACjD,QAAQ,CAAC,EACT,QAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,MAAwB,KACnD,QAAQ,CAAC,CAAC,CAQZ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { unknownToString } from '../../../others/unknown-to-string.mjs';
|
|
2
|
+
import { isErr } from './result-is-err.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Unwraps a `Result`, returning the success value. Throws an error if the
|
|
6
|
+
* `Result` is `Result.Err`.
|
|
7
|
+
*
|
|
8
|
+
* This is useful when you're confident that a Result should contain a success
|
|
9
|
+
* value and want to treat errors as exceptional conditions. The error message
|
|
10
|
+
* will be constructed from the error value using the provided string
|
|
11
|
+
* conversion function.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* const okResult = Result.ok('data');
|
|
17
|
+
* const errResult = Result.err(new Error('fail'));
|
|
18
|
+
*
|
|
19
|
+
* assert(Result.unwrapThrow(okResult) === 'data');
|
|
20
|
+
* assert.throws(() => Result.unwrapThrow(errResult), /fail/u);
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @template R The `UnknownResult` type to unwrap.
|
|
24
|
+
* @param result The `Result` to unwrap.
|
|
25
|
+
* @param toStr An optional function to convert the error value to a string
|
|
26
|
+
* for the error message. Defaults to `String`.
|
|
27
|
+
* @returns The success value if `Result.Ok`.
|
|
28
|
+
* @throws {Error} Error with the stringified error value if the `Result` is
|
|
29
|
+
* `Result.Err`.
|
|
30
|
+
*/
|
|
31
|
+
const unwrapThrow = (result, toStr = unknownToString) => {
|
|
32
|
+
if (isErr(result)) {
|
|
33
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
34
|
+
throw new Error(toStr(result.value));
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
37
|
+
return result.value;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { unwrapThrow };
|
|
41
|
+
//# sourceMappingURL=result-unwrap-throw.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-unwrap-throw.mjs","sources":["../../../../src/functional/result/impl/result-unwrap-throw.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACI,MAAM,WAAW,GAAG,CACzB,MAAS,EACT,KAAA,GAAqC,eAAe,KACrC;AACf,IAAA,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;;QAEjB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAqB,CAAC,CAAC;IACtD;;IAGA,OAAO,MAAM,CAAC,KAAoB;AACpC;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Combines two `Result` values into a single `Result` containing a tuple. If
|
|
3
|
+
* either `Result` is `Err`, returns the first `Err` encountered.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* const first = Result.ok('left');
|
|
9
|
+
* const second = Result.ok(1);
|
|
10
|
+
*
|
|
11
|
+
* const expected: readonly [string, number] = ['left', 1];
|
|
12
|
+
*
|
|
13
|
+
* assert.deepStrictEqual(Result.zip(first, second), Result.ok(expected));
|
|
14
|
+
* assert.deepStrictEqual(
|
|
15
|
+
* Result.zip(first, Result.err('error')),
|
|
16
|
+
* Result.err('error'),
|
|
17
|
+
* );
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @template S1 The success type of the first `Result`.
|
|
21
|
+
* @template E1 The error type of the first `Result`.
|
|
22
|
+
* @template S2 The success type of the second `Result`.
|
|
23
|
+
* @template E2 The error type of the second `Result`.
|
|
24
|
+
* @param resultA The first `Result`.
|
|
25
|
+
* @param resultB The second `Result`.
|
|
26
|
+
* @returns A `Result` containing a tuple of both values, or the first `Err`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const zip: <S1, E1, S2, E2>(resultA: Result<S1, E1>, resultB: Result<S2, E2>) => Result<readonly [S1, S2], E1 | E2>;
|
|
29
|
+
//# sourceMappingURL=result-zip.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-zip.d.mts","sourceRoot":"","sources":["../../../../src/functional/result/impl/result-zip.mts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,GAAG,GAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAChC,SAAS,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EACvB,SAAS,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,KACtB,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAKvB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { isOk } from './result-is-ok.mjs';
|
|
2
|
+
import { ok } from './result-ok.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Combines two `Result` values into a single `Result` containing a tuple. If
|
|
6
|
+
* either `Result` is `Err`, returns the first `Err` encountered.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* const first = Result.ok('left');
|
|
12
|
+
* const second = Result.ok(1);
|
|
13
|
+
*
|
|
14
|
+
* const expected: readonly [string, number] = ['left', 1];
|
|
15
|
+
*
|
|
16
|
+
* assert.deepStrictEqual(Result.zip(first, second), Result.ok(expected));
|
|
17
|
+
* assert.deepStrictEqual(
|
|
18
|
+
* Result.zip(first, Result.err('error')),
|
|
19
|
+
* Result.err('error'),
|
|
20
|
+
* );
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @template S1 The success type of the first `Result`.
|
|
24
|
+
* @template E1 The error type of the first `Result`.
|
|
25
|
+
* @template S2 The success type of the second `Result`.
|
|
26
|
+
* @template E2 The error type of the second `Result`.
|
|
27
|
+
* @param resultA The first `Result`.
|
|
28
|
+
* @param resultB The second `Result`.
|
|
29
|
+
* @returns A `Result` containing a tuple of both values, or the first `Err`.
|
|
30
|
+
*/
|
|
31
|
+
const zip = (resultA, resultB) => isOk(resultA)
|
|
32
|
+
? isOk(resultB)
|
|
33
|
+
? ok([resultA.value, resultB.value])
|
|
34
|
+
: resultB
|
|
35
|
+
: resultA;
|
|
36
|
+
|
|
37
|
+
export { zip };
|
|
38
|
+
//# sourceMappingURL=result-zip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-zip.mjs","sources":["../../../../src/functional/result/impl/result-zip.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACI,MAAM,GAAG,GAAG,CACjB,OAAuB,EACvB,OAAuB,KAEvB,IAAI,CAAC,OAAO;AACV,MAAE,IAAI,CAAC,OAAO;AACZ,UAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAU;AAC5C,UAAE;MACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.d.mts","sourceRoot":"","sources":["../../../../src/functional/result/impl/tag.mts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAA8B,CAAC;AAE9E,iDAAiD;AACjD,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CACpB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** @internal Tag identifying the Ok variant. */
|
|
2
|
+
const OkTypeTagName = 'ts-data-forge::Result.ok';
|
|
3
|
+
/** @internal Tag identifying the Err variant. */
|
|
4
|
+
const ErrTypeTagName = 'ts-data-forge::Result.err';
|
|
5
|
+
|
|
6
|
+
export { ErrTypeTagName, OkTypeTagName };
|
|
7
|
+
//# sourceMappingURL=tag.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.mjs","sources":["../../../../src/functional/result/impl/tag.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACO,MAAM,aAAa,GAAyB;AAEnD;AACO,MAAM,cAAc,GACzB;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts the success value type `S` from a `Result.Ok<S>`. If the `Result`
|
|
3
|
+
* is `Result.Err<E>`, resolves to `never`.
|
|
4
|
+
*
|
|
5
|
+
* @template R The `UnknownResult` type to unwrap.
|
|
6
|
+
*/
|
|
7
|
+
export type UnwrapOk<R extends UnknownResult> = R extends Ok<infer S> ? S : never;
|
|
8
|
+
/**
|
|
9
|
+
* Extracts the error value type `E` from a `Result.Err<E>`. If the `Result`
|
|
10
|
+
* is `Result.Ok<S>`, resolves to `never`.
|
|
11
|
+
*
|
|
12
|
+
* @template R The `UnknownResult` type to unwrap.
|
|
13
|
+
*/
|
|
14
|
+
export type UnwrapErr<R extends UnknownResult> = R extends Err<infer E> ? E : never;
|
|
15
|
+
/**
|
|
16
|
+
* Narrows a `UnknownResult` type to `Result.Ok<S>` if it is an `Ok`. If the
|
|
17
|
+
* `Result` is `Result.Err<E>`, resolves to `never`.
|
|
18
|
+
*
|
|
19
|
+
* @template R The `UnknownResult` type to narrow.
|
|
20
|
+
*/
|
|
21
|
+
export type NarrowToOk<R extends UnknownResult> = R extends Ok<unknown> ? R : never;
|
|
22
|
+
/**
|
|
23
|
+
* Narrows a `UnknownResult` type to `Result.Err<E>` if it is an `Err`. If the
|
|
24
|
+
* `Result` is `Result.Ok<S>`, resolves to `never`.
|
|
25
|
+
*
|
|
26
|
+
* @template R The `UnknownResult` type to narrow.
|
|
27
|
+
*/
|
|
28
|
+
export type NarrowToErr<R extends UnknownResult> = R extends Err<unknown> ? R : never;
|
|
29
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../../src/functional/result/impl/types.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,aAAa,IAC1C,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,IAC3C,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAErC;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,aAAa,IAC5C,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,aAAa,IAC7C,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/functional/result/index.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/globals.d.mts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
/* eslint-disable import/unambiguous */
|
|
2
|
-
|
|
3
1
|
/// <reference types="ts-type-forge" />
|
|
4
2
|
|
|
5
3
|
type SmallPositiveInt = WithSmallInt<PositiveInt>;
|
|
6
4
|
|
|
7
|
-
/**
|
|
8
|
-
* Represents the type of keys that can be used in a standard JavaScript Map.
|
|
9
|
-
*/
|
|
5
|
+
/** Represents the type of keys that can be used in a standard JavaScript Map. */
|
|
10
6
|
type MapSetKeyType = Primitive;
|
|
11
7
|
|
|
8
|
+
type ArrayIndex<Ar extends readonly unknown[]> =
|
|
9
|
+
IsFixedLengthList<Ar> extends true ? IndexOfTuple<Ar> : SizeType.Arr;
|
|
10
|
+
|
|
11
|
+
type ArgArrayIndex<Ar extends readonly unknown[]> =
|
|
12
|
+
IsFixedLengthList<Ar> extends true ? IndexOfTuple<Ar> : SizeType.ArgArr;
|
|
13
|
+
|
|
14
|
+
type ArgArrayIndexWithNegative<Ar extends readonly unknown[]> =
|
|
15
|
+
IsFixedLengthList<Ar> extends true
|
|
16
|
+
? IndexOfTuple<[...Ar, 0]> | NegativeIndexOfTuple<Ar>
|
|
17
|
+
: SizeType.ArgArrWithNegative;
|
|
18
|
+
|
|
12
19
|
// https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length
|
|
13
20
|
// https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/length
|
|
14
21
|
// Max array length : 2^32 - 1
|
|
@@ -39,3 +46,86 @@ declare namespace SizeType {
|
|
|
39
46
|
>;
|
|
40
47
|
type ArgStrPositive = WithSmallInt<IntersectBrand<PositiveNumber, Str>>;
|
|
41
48
|
}
|
|
49
|
+
|
|
50
|
+
// #region Optional
|
|
51
|
+
/**
|
|
52
|
+
* Represents the 'Some' variant of an {@link Optional}, containing a value.
|
|
53
|
+
*
|
|
54
|
+
* @template S The type of the contained value.
|
|
55
|
+
*/
|
|
56
|
+
type Some<S> = Readonly<{
|
|
57
|
+
/** @internal Discriminant property for the 'Some' type. */
|
|
58
|
+
$$tag: 'ts-data-forge::Optional.some';
|
|
59
|
+
|
|
60
|
+
/** The contained value. */
|
|
61
|
+
value: S;
|
|
62
|
+
}>;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Represents the 'None' variant of an {@link Optional}, indicating the absence
|
|
66
|
+
* of a value.
|
|
67
|
+
*/
|
|
68
|
+
type None = Readonly<{
|
|
69
|
+
/** @internal Discriminant property for the 'None' type. */
|
|
70
|
+
$$tag: 'ts-data-forge::Optional.none';
|
|
71
|
+
}>;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Represents an optional value that can either be `Some` (containing a value)
|
|
75
|
+
* or `None` (empty).
|
|
76
|
+
*
|
|
77
|
+
* @template S The type of the value that might be present.
|
|
78
|
+
*/
|
|
79
|
+
type Optional<S> = None | Some<S>;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Base type for any {@link Optional}, used for generic constraints. Represents
|
|
83
|
+
* an {@link Optional} with an unknown value type.
|
|
84
|
+
*/
|
|
85
|
+
type UnknownOptional = Optional<unknown>;
|
|
86
|
+
|
|
87
|
+
// #endregion
|
|
88
|
+
|
|
89
|
+
// #region Result
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Represents a `Result` that is a success, containing a value.
|
|
93
|
+
*
|
|
94
|
+
* @template S The type of the success value.
|
|
95
|
+
*/
|
|
96
|
+
type Ok<S> = Readonly<{
|
|
97
|
+
/** @internal Discriminant property for the 'Ok' type. */
|
|
98
|
+
$$tag: 'ts-data-forge::Result.ok';
|
|
99
|
+
|
|
100
|
+
/** The success value. */
|
|
101
|
+
value: S;
|
|
102
|
+
}>;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Represents a `Result` that is an error, containing an error value.
|
|
106
|
+
*
|
|
107
|
+
* @template E The type of the error value.
|
|
108
|
+
*/
|
|
109
|
+
type Err<E> = Readonly<{
|
|
110
|
+
/** @internal Discriminant property for the 'Err' type. */
|
|
111
|
+
$$tag: 'ts-data-forge::Result.err';
|
|
112
|
+
|
|
113
|
+
/** The error value. */
|
|
114
|
+
value: E;
|
|
115
|
+
}>;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Represents a value that can either be a success (`Ok`) or an error (`Err`).
|
|
119
|
+
*
|
|
120
|
+
* @template S The type of the success value.
|
|
121
|
+
* @template E The type of the error value.
|
|
122
|
+
*/
|
|
123
|
+
type Result<S, E> = Ok<S> | Err<E>;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Base type for any `Result`, used for generic constraints. Represents a
|
|
127
|
+
* `Result` with unknown success and error types.
|
|
128
|
+
*/
|
|
129
|
+
type UnknownResult = Result<unknown, unknown>;
|
|
130
|
+
|
|
131
|
+
// #endregion
|
package/dist/guard/has-key.d.mts
CHANGED
|
@@ -1,91 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Type guard function that checks if an object has a specific key as its own
|
|
2
|
+
* Type guard function that checks if an object has a specific key as its own
|
|
3
|
+
* property.
|
|
3
4
|
*
|
|
4
|
-
* This function uses `Object.hasOwn()` to check if the given object has the
|
|
5
|
-
* as its own property (not inherited). It acts as a type guard
|
|
6
|
-
* object to guarantee the key exists, enabling
|
|
5
|
+
* This function uses `Object.hasOwn()` to check if the given object has the
|
|
6
|
+
* specified key as its own property (not inherited). It acts as a type guard
|
|
7
|
+
* that narrows the type of the object to guarantee the key exists, enabling
|
|
8
|
+
* type-safe property access.
|
|
7
9
|
*
|
|
8
10
|
* **Type Narrowing Behavior:**
|
|
9
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* - When the guard returns `true`, TypeScript narrows the object type to include
|
|
13
|
+
* the checked key
|
|
10
14
|
* - For union types, only union members that contain the key are preserved
|
|
11
15
|
* - The key's value type is preserved from the original object type when possible
|
|
12
16
|
*
|
|
13
|
-
* @template R - The type of the input object, must extend UnknownRecord
|
|
14
|
-
* @template K - The type of the key to check for, must extend PropertyKey (string | number | symbol)
|
|
15
|
-
* @param obj - The object to check for the presence of the key
|
|
16
|
-
* @param key - The key to check for in the object
|
|
17
|
-
* @returns `true` if the object has the specified key as its own property, `false` otherwise.
|
|
18
|
-
* When `true`, TypeScript narrows the object type to guarantee the key exists.
|
|
19
|
-
*
|
|
20
17
|
* @example
|
|
21
|
-
* Basic usage with known object structure:
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const obj = { a: 1, b: 'hello' };
|
|
24
|
-
*
|
|
25
|
-
* if (hasKey(obj, 'a')) {
|
|
26
|
-
* // obj is narrowed to guarantee 'a' exists
|
|
27
|
-
* console.log(obj.a); // TypeScript knows 'a' exists and is type number
|
|
28
|
-
* // No need for optional chaining or undefined checks
|
|
29
|
-
* }
|
|
30
18
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* console.log(obj.c); // But TypeScript would know 'c' exists if it did
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* Working with dynamic objects and unknown keys:
|
|
39
|
-
* ```typescript
|
|
40
|
-
* const dynamicObj: Record<string, unknown> = { x: 10, y: 20 };
|
|
41
|
-
* const userInput: string = getUserInput();
|
|
19
|
+
* ```ts
|
|
20
|
+
* const maybeUser: { id?: number; name?: string } = { id: 42 };
|
|
42
21
|
*
|
|
43
|
-
* if (hasKey(
|
|
44
|
-
* //
|
|
45
|
-
*
|
|
46
|
-
* console.log(`Value for ${userInput}:`, value);
|
|
22
|
+
* if (hasKey(maybeUser, 'id')) {
|
|
23
|
+
* // `maybeUser` is now known to have an `id` property.
|
|
24
|
+
* assert(maybeUser.id === 42);
|
|
47
25
|
* } else {
|
|
48
|
-
*
|
|
49
|
-
* }
|
|
50
|
-
* ```
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* Type narrowing with union types:
|
|
54
|
-
* ```typescript
|
|
55
|
-
* type UserPreferences =
|
|
56
|
-
* | { theme: 'dark'; notifications: boolean }
|
|
57
|
-
* | { theme: 'light' }
|
|
58
|
-
* | { autoSave: true; interval: number };
|
|
59
|
-
*
|
|
60
|
-
* const preferences: UserPreferences = getPreferences();
|
|
61
|
-
*
|
|
62
|
-
* if (hasKey(preferences, 'theme')) {
|
|
63
|
-
* // preferences is narrowed to the first two union members
|
|
64
|
-
* console.log(preferences.theme); // 'dark' | 'light'
|
|
65
|
-
* }
|
|
66
|
-
*
|
|
67
|
-
* if (hasKey(preferences, 'autoSave')) {
|
|
68
|
-
* // preferences is narrowed to the third union member
|
|
69
|
-
* console.log(preferences.interval); // number (we know this exists)
|
|
70
|
-
* }
|
|
71
|
-
* ```
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* Basic usage with isRecord for progressive narrowing:
|
|
75
|
-
* ```typescript
|
|
76
|
-
* const data: unknown = parseApiResponse();
|
|
77
|
-
*
|
|
78
|
-
* if (isRecord(data) && hasKey(data, 'user')) {
|
|
79
|
-
* // data is now Record<string, unknown> with guaranteed 'user' key
|
|
80
|
-
* const user = data.user;
|
|
81
|
-
*
|
|
82
|
-
* if (isRecord(user) && hasKey(user, 'name')) {
|
|
83
|
-
* // Safely access nested properties
|
|
84
|
-
* console.log('User name:', user.name);
|
|
85
|
-
* }
|
|
26
|
+
* assert.fail('Expected the object to contain the id key.');
|
|
86
27
|
* }
|
|
87
28
|
* ```
|
|
88
29
|
*
|
|
30
|
+
* @template R - The type of the input object, must extend UnknownRecord
|
|
31
|
+
* @template K - The type of the key to check for, must extend PropertyKey
|
|
32
|
+
* (string | number | symbol)
|
|
33
|
+
* @param obj - The object to check for the presence of the key
|
|
34
|
+
* @param key - The key to check for in the object
|
|
35
|
+
* @returns `true` if the object has the specified key as its own property,
|
|
36
|
+
* `false` otherwise. When `true`, TypeScript narrows the object type to
|
|
37
|
+
* guarantee the key exists.
|
|
89
38
|
* @see {@link keyIsIn} - Similar function that narrows the key type instead of the object type
|
|
90
39
|
*/
|
|
91
40
|
export declare const hasKey: <const R extends UnknownRecord, const K extends PropertyKey>(obj: R, key: K) => obj is HasKeyReturnType<R, K>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-key.d.mts","sourceRoot":"","sources":["../../src/guard/has-key.mts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"has-key.d.mts","sourceRoot":"","sources":["../../src/guard/has-key.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,MAAM,GACjB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC7B,KAAK,CAAC,CAAC,SAAS,WAAW,EAE3B,KAAK,CAAC,EACN,KAAK,CAAC,KACL,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAA4B,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,WAAW,IACnB,CAAC,SAAS,CAAC,GACX,CAAC,SAAS,MAAM,CAAC,GACf,MAAM,SAAS,MAAM,CAAC,GACpB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GACjC,MAAM,SAAS,MAAM,CAAC,GACpB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GACjC,MAAM,SAAS,MAAM,CAAC,GACpB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GACjC,CAAC,GACP,KAAK,GACP,KAAK,CAAC"}
|