ts-data-forge 3.3.1 → 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/dist/array/impl/array-utils-element-access.d.mts +3 -4
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
- package/dist/array/impl/array-utils-element-access.mjs +8 -8
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.d.mts +8 -9
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.mjs +9 -7
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-search.d.mts +0 -1
- package/dist/array/impl/array-utils-search.d.mts.map +1 -1
- package/dist/array/impl/array-utils-search.mjs +6 -6
- package/dist/array/impl/array-utils-search.mjs.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs +2 -4
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/collections/imap-mapped.d.mts +0 -1
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +7 -6
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts +0 -1
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +11 -9
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/queue.d.mts +0 -1
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/queue.mjs +4 -4
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.d.mts +0 -1
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/collections/stack.mjs +4 -4
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.d.mts +1 -0
- package/dist/entry-point.d.mts.map +1 -1
- package/dist/entry-point.mjs +6 -4
- package/dist/entry-point.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/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 +4 -4
- 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 +83 -0
- package/dist/index.d.mts +0 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -4
- package/dist/index.mjs.map +1 -1
- package/dist/json/json.d.mts +0 -1
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +8 -8
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +1 -1
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.mjs +1 -1
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.mjs +1 -1
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.mjs +1 -1
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +1 -1
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +1 -1
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +1 -1
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +1 -1
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +1 -1
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +1 -1
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +1 -1
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +1 -1
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.mjs +1 -1
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.mjs +1 -1
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.mjs +1 -1
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.mjs +1 -1
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.mjs +1 -1
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/refined-number-utils.mjs +0 -2
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/promise/promise.d.mts +0 -1
- package/dist/promise/promise.d.mts.map +1 -1
- package/dist/promise/promise.mjs +2 -3
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +27 -21
- package/src/array/impl/array-utils-element-access.mts +6 -6
- package/src/array/impl/array-utils-element-access.test.mts +6 -6
- package/src/array/impl/array-utils-reducing-value.mts +8 -24
- package/src/array/impl/array-utils-reducing-value.test.mts +8 -8
- package/src/array/impl/array-utils-slice-clamped.test.mts +1 -1
- package/src/entry-point.mts +1 -0
- package/src/functional/index.mts +2 -2
- 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 +7 -8
- package/src/functional/pipe.mts +5 -5
- 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 +5 -4
- package/src/globals.d.mts +83 -0
- package/src/guard/is-non-empty-string.test.mts +1 -1
- package/src/guard/is-non-null-object.test.mts +3 -3
- package/src/guard/is-primitive.test.mts +3 -3
- package/src/guard/is-type.test.mts +3 -3
- package/src/index.mts +0 -1
- package/src/number/branded-types/finite-number.mts +7 -7
- package/src/number/branded-types/int.mts +7 -7
- package/src/number/branded-types/int16.mts +9 -9
- package/src/number/branded-types/int32.mts +9 -9
- package/src/number/branded-types/non-negative-finite-number.mts +8 -8
- package/src/number/branded-types/non-negative-int16.mts +9 -9
- package/src/number/branded-types/non-negative-int32.mts +9 -9
- package/src/number/branded-types/non-zero-finite-number.mts +7 -7
- package/src/number/branded-types/non-zero-int.mts +7 -7
- package/src/number/branded-types/non-zero-int16.mts +9 -9
- package/src/number/branded-types/non-zero-int32.mts +9 -9
- package/src/number/branded-types/non-zero-safe-int.mts +9 -9
- package/src/number/branded-types/non-zero-uint16.mts +9 -9
- package/src/number/branded-types/non-zero-uint32.mts +9 -9
- package/src/number/branded-types/positive-finite-number.mts +8 -8
- package/src/number/branded-types/positive-int.mts +8 -8
- package/src/number/branded-types/positive-int16.mts +9 -9
- package/src/number/branded-types/positive-int32.mts +9 -9
- package/src/number/branded-types/positive-safe-int.mts +9 -9
- package/src/number/branded-types/positive-uint16.mts +9 -9
- package/src/number/branded-types/positive-uint32.mts +9 -9
- package/src/number/branded-types/safe-int.mts +9 -9
- package/src/number/branded-types/safe-uint.mts +9 -9
- package/src/number/branded-types/uint.mts +8 -8
- package/src/number/branded-types/uint16.mts +9 -9
- package/src/number/branded-types/uint32.mts +9 -9
- package/src/number/enum/int8.mts +3 -3
- package/src/number/enum/int8.test.mts +9 -9
- package/src/number/enum/uint8.mts +3 -3
- package/src/number/enum/uint8.test.mts +8 -8
- package/dist/functional/optional.d.mts +0 -482
- package/dist/functional/optional.d.mts.map +0 -1
- package/dist/functional/optional.mjs +0 -328
- package/dist/functional/optional.mjs.map +0 -1
- package/dist/functional/result.d.mts +0 -712
- package/dist/functional/result.d.mts.map +0 -1
- package/dist/functional/result.mjs +0 -539
- package/dist/functional/result.mjs.map +0 -1
- package/src/functional/optional.mts +0 -713
- package/src/functional/result.mts +0 -1087
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SomeTypeTagName } from './tag.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Checks if an {@link Optional} is {@link Some}. Acts as a type guard.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const optionalNumber = Optional.some(42);
|
|
10
|
+
*
|
|
11
|
+
* if (Optional.isSome(optionalNumber)) {
|
|
12
|
+
* const value: number = optionalNumber.value;
|
|
13
|
+
* assert(value === 42);
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @template O The {@link UnknownOptional} type to check.
|
|
18
|
+
* @param optional The {@link Optional} to check.
|
|
19
|
+
* @returns `true` if the {@link Optional} is {@link Some}, `false`
|
|
20
|
+
* otherwise.
|
|
21
|
+
*/
|
|
22
|
+
const isSome = (optional) => optional.$$tag === SomeTypeTagName;
|
|
23
|
+
|
|
24
|
+
export { isSome };
|
|
25
|
+
//# sourceMappingURL=optional-is-some.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-is-some.mjs","sources":["../../../../src/functional/optional/impl/optional-is-some.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;;;;;;;;;;;;AAkBG;AACI,MAAM,MAAM,GAAG,CACpB,QAAW,KACqB,QAAQ,CAAC,KAAK,KAAK;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Unwrap } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Maps an {@link Optional}<S> to {@link Optional}<S2> by applying a function to
|
|
4
|
+
* a contained value. If the {@link Optional} is {@link None}, it
|
|
5
|
+
* returns {@link Optional.none}. Otherwise, it applies the `mapFn` to the
|
|
6
|
+
* value in `Some` and returns a new `Some` with the result.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* const numberOptional = Optional.some(21);
|
|
12
|
+
* const mapped = Optional.map(numberOptional, (value) => value * 2);
|
|
13
|
+
*
|
|
14
|
+
* assert.deepStrictEqual(mapped, Optional.some(42));
|
|
15
|
+
*
|
|
16
|
+
* const mapToLength = Optional.map((text: string) => text.length);
|
|
17
|
+
*
|
|
18
|
+
* assert.deepStrictEqual(mapToLength(Optional.some('abc')), Optional.some(3));
|
|
19
|
+
* assert.deepStrictEqual(mapToLength(Optional.none), Optional.none);
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @template O The input `UnknownOptional` type.
|
|
23
|
+
* @template S2 The type of the value returned by the mapping function.
|
|
24
|
+
* @param optional The `Optional` to map.
|
|
25
|
+
* @param mapFn The function to apply to the value if it exists.
|
|
26
|
+
* @returns A new `Optional<S2>` resulting from the mapping, or
|
|
27
|
+
* `None` if the input was `None`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function map<O extends UnknownOptional, S2>(optional: O, mapFn: (value: Unwrap<O>) => S2): Optional<S2>;
|
|
30
|
+
export declare function map<S, S2>(mapFn: (value: S) => S2): (optional: Optional<S>) => Optional<S2>;
|
|
31
|
+
//# sourceMappingURL=optional-map.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-map.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-map.mts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,eAAe,EAAE,EAAE,EAC/C,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,GAC9B,QAAQ,CAAC,EAAE,CAAC,CAAC;AAGhB,wBAAgB,GAAG,CAAC,CAAC,EAAE,EAAE,EACvB,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GACtB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { isSome } from './optional-is-some.mjs';
|
|
2
|
+
import { none } from './optional-none.mjs';
|
|
3
|
+
import { some } from './optional-some.mjs';
|
|
4
|
+
import { unwrap } from './optional-unwrap.mjs';
|
|
5
|
+
|
|
6
|
+
function map(...args) {
|
|
7
|
+
switch (args.length) {
|
|
8
|
+
case 2: {
|
|
9
|
+
const [optional, mapFn] = args;
|
|
10
|
+
return mapImpl(optional, mapFn);
|
|
11
|
+
}
|
|
12
|
+
case 1: {
|
|
13
|
+
// Curried version: first argument is mapping function
|
|
14
|
+
const [mapFn] = args;
|
|
15
|
+
return (optional) => mapImpl(optional, mapFn);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const mapImpl = (optional, mapFn) => isSome(optional)
|
|
20
|
+
? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
21
|
+
some(mapFn(unwrap(optional)))
|
|
22
|
+
: none;
|
|
23
|
+
|
|
24
|
+
export { map };
|
|
25
|
+
//# sourceMappingURL=optional-map.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-map.mjs","sources":["../../../../src/functional/optional/impl/optional-map.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AA2CM,SAAU,GAAG,CACjB,GAAG,IAE2C,EAAA;AAE9C,IAAA,QAAQ,IAAI,CAAC,MAAM;QACjB,KAAK,CAAC,EAAE;AACN,YAAA,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI;AAC9B,YAAA,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;QACjC;QACA,KAAK,CAAC,EAAE;;AAEN,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI;YACpB,OAAO,CAAC,QAAW,KAAK,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;QAClD;;AAEJ;AAEA,MAAM,OAAO,GAAG,CACd,QAAW,EACX,KAA+B,KAE/B,MAAM,CAAC,QAAQ;AACb;QACE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;MAC7B,IAAI;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The singleton instance representing {@link None} (an empty
|
|
3
|
+
* Optional).
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* const someValue = Optional.some({ id: 1 });
|
|
9
|
+
* const noneValue = Optional.none;
|
|
10
|
+
*
|
|
11
|
+
* assert.ok(Optional.isSome(someValue));
|
|
12
|
+
* assert.ok(Optional.isNone(noneValue));
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare const none: None;
|
|
16
|
+
//# sourceMappingURL=optional-none.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-none.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-none.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,EAAE,IAA0C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NoneTypeTagName } from './tag.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The singleton instance representing {@link None} (an empty
|
|
5
|
+
* Optional).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* const someValue = Optional.some({ id: 1 });
|
|
11
|
+
* const noneValue = Optional.none;
|
|
12
|
+
*
|
|
13
|
+
* assert.ok(Optional.isSome(someValue));
|
|
14
|
+
* assert.ok(Optional.isNone(noneValue));
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
const none = { $$tag: NoneTypeTagName };
|
|
18
|
+
|
|
19
|
+
export { none };
|
|
20
|
+
//# sourceMappingURL=optional-none.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-none.mjs","sources":["../../../../src/functional/optional/impl/optional-none.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;AAaG;MACU,IAAI,GAAS,EAAE,KAAK,EAAE,eAAe;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the `Optional` if it is `Some`, otherwise returns the alternative.
|
|
3
|
+
*
|
|
4
|
+
* Provides a way to chain Optional operations with fallback values. This is
|
|
5
|
+
* particularly useful for implementing default behavior or cascading lookups.
|
|
6
|
+
* Supports both direct usage and curried form for functional composition.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* const preferred = Optional.some('primary');
|
|
12
|
+
* const fallback = Optional.some('secondary');
|
|
13
|
+
* const noneValue = Optional.none as Optional<string>;
|
|
14
|
+
*
|
|
15
|
+
* assert.deepStrictEqual(Optional.orElse(preferred, fallback), preferred);
|
|
16
|
+
* assert.deepStrictEqual(Optional.orElse(noneValue, fallback), fallback);
|
|
17
|
+
*
|
|
18
|
+
* const orElseFallback = Optional.orElse(Optional.some('default'));
|
|
19
|
+
*
|
|
20
|
+
* assert.deepStrictEqual(orElseFallback(Optional.none), Optional.some('default'));
|
|
21
|
+
* assert.deepStrictEqual(
|
|
22
|
+
* orElseFallback(Optional.some('value')),
|
|
23
|
+
* Optional.some('value'),
|
|
24
|
+
* );
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @template O The input `UnknownOptional` type.
|
|
28
|
+
* @param optional The `Optional` to check.
|
|
29
|
+
* @param alternative The alternative `Optional` to return if the first is
|
|
30
|
+
* `None`.
|
|
31
|
+
* @returns The first `Optional` if `Some`, otherwise the alternative.
|
|
32
|
+
*/
|
|
33
|
+
export declare function orElse<O extends UnknownOptional, const O2 extends UnknownOptional>(optional: O, alternative: O2): O | O2;
|
|
34
|
+
export declare function orElse<S, S2>(alternative: Optional<S2>): (optional: Optional<S>) => Optional<S> | Optional<S2>;
|
|
35
|
+
//# sourceMappingURL=optional-or-else.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-or-else.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-or-else.mts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,MAAM,CACpB,CAAC,SAAS,eAAe,EACzB,KAAK,CAAC,EAAE,SAAS,eAAe,EAChC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAGxC,wBAAgB,MAAM,CAAC,CAAC,EAAE,EAAE,EAC1B,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,GACxB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { isNone } from './optional-is-none.mjs';
|
|
2
|
+
|
|
3
|
+
function orElse(...args) {
|
|
4
|
+
switch (args.length) {
|
|
5
|
+
case 2: {
|
|
6
|
+
const [optional, alternative] = args;
|
|
7
|
+
return orElseImpl(optional, alternative);
|
|
8
|
+
}
|
|
9
|
+
case 1: {
|
|
10
|
+
// Curried version
|
|
11
|
+
const [alternative] = args;
|
|
12
|
+
return (optional) => orElseImpl(optional, alternative);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const orElseImpl = (optional, alternative) => (isNone(optional) ? alternative : optional);
|
|
17
|
+
|
|
18
|
+
export { orElse };
|
|
19
|
+
//# sourceMappingURL=optional-or-else.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-or-else.mjs","sources":["../../../../src/functional/optional/impl/optional-or-else.mts"],"sourcesContent":[null],"names":[],"mappings":";;AA6CM,SAAU,MAAM,CAIpB,GAAG,IAA0E,EAAA;AAE7E,IAAA,QAAQ,IAAI,CAAC,MAAM;QACjB,KAAK,CAAC,EAAE;AACN,YAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI;AACpC,YAAA,OAAO,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC1C;QAEA,KAAK,CAAC,EAAE;;AAEN,YAAA,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI;YAC1B,OAAO,CAAC,QAA6B,KACnC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;QACrC;;AAEJ;AAEA,MAAM,UAAU,GAAG,CAIjB,QAAW,EACX,WAAe,MACH,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,GAAG,QAAQ,CAAC;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an {@link Some} containing the given value.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const someValue = Optional.some({ id: 1 });
|
|
8
|
+
* const noneValue = Optional.none;
|
|
9
|
+
*
|
|
10
|
+
* assert.ok(Optional.isSome(someValue));
|
|
11
|
+
* assert.ok(Optional.isNone(noneValue));
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @template S The type of the value.
|
|
15
|
+
* @param value The value to wrap in an {@link Some}.
|
|
16
|
+
* @returns An {@link Some}<S> containing the value.
|
|
17
|
+
*/
|
|
18
|
+
export declare const some: <S>(value: S) => Some<S>;
|
|
19
|
+
//# sourceMappingURL=optional-some.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-some.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-some.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAG,OAAO,CAAC,KAAG,IAAI,CAAC,CAAC,CAGxC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SomeTypeTagName } from './tag.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Creates an {@link Some} containing the given value.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const someValue = Optional.some({ id: 1 });
|
|
10
|
+
* const noneValue = Optional.none;
|
|
11
|
+
*
|
|
12
|
+
* assert.ok(Optional.isSome(someValue));
|
|
13
|
+
* assert.ok(Optional.isNone(noneValue));
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @template S The type of the value.
|
|
17
|
+
* @param value The value to wrap in an {@link Some}.
|
|
18
|
+
* @returns An {@link Some}<S> containing the value.
|
|
19
|
+
*/
|
|
20
|
+
const some = (value) => ({
|
|
21
|
+
$$tag: SomeTypeTagName,
|
|
22
|
+
value,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export { some };
|
|
26
|
+
//# sourceMappingURL=optional-some.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-some.mjs","sources":["../../../../src/functional/optional/impl/optional-some.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;AAgBG;MACU,IAAI,GAAG,CAAK,KAAQ,MAAe;AAC9C,IAAA,KAAK,EAAE,eAAe;IACtB,KAAK;AACN,CAAA;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Unwrap } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Converts an `Optional` to a nullable value.
|
|
4
|
+
*
|
|
5
|
+
* This function extracts the value from an Optional, returning `undefined`
|
|
6
|
+
* for empty Optionals. This is useful when interfacing with APIs or systems
|
|
7
|
+
* that expect nullable values rather than Optional types.
|
|
8
|
+
*
|
|
9
|
+
* Note: This returns `undefined` (not `null`) for consistency with
|
|
10
|
+
* JavaScript's undefined semantics and TypeScript's optional properties.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* const someNumber = Optional.some(42);
|
|
16
|
+
* const noneNumber = Optional.none as Optional<number>;
|
|
17
|
+
*
|
|
18
|
+
* assert(Optional.toNullable(someNumber) === 42);
|
|
19
|
+
* assert(Optional.toNullable(noneNumber) === undefined);
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @template O The `UnknownOptional` type to convert.
|
|
23
|
+
* @param optional The `Optional` to convert.
|
|
24
|
+
* @returns The contained value if `Some`, otherwise `undefined`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const toNullable: <O extends UnknownOptional>(optional: O) => Unwrap<O> | undefined;
|
|
27
|
+
//# sourceMappingURL=optional-to-nullable.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-to-nullable.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-to-nullable.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,eAAe,EAClD,UAAU,CAAC,KACV,MAAM,CAAC,CAAC,CAAC,GAAG,SAA8D,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { isSome } from './optional-is-some.mjs';
|
|
2
|
+
import { unwrap } from './optional-unwrap.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Converts an `Optional` to a nullable value.
|
|
6
|
+
*
|
|
7
|
+
* This function extracts the value from an Optional, returning `undefined`
|
|
8
|
+
* for empty Optionals. This is useful when interfacing with APIs or systems
|
|
9
|
+
* that expect nullable values rather than Optional types.
|
|
10
|
+
*
|
|
11
|
+
* Note: This returns `undefined` (not `null`) for consistency with
|
|
12
|
+
* JavaScript's undefined semantics and TypeScript's optional properties.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* const someNumber = Optional.some(42);
|
|
18
|
+
* const noneNumber = Optional.none as Optional<number>;
|
|
19
|
+
*
|
|
20
|
+
* assert(Optional.toNullable(someNumber) === 42);
|
|
21
|
+
* assert(Optional.toNullable(noneNumber) === undefined);
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @template O The `UnknownOptional` type to convert.
|
|
25
|
+
* @param optional The `Optional` to convert.
|
|
26
|
+
* @returns The contained value if `Some`, otherwise `undefined`.
|
|
27
|
+
*/
|
|
28
|
+
const toNullable = (optional) => (isSome(optional) ? unwrap(optional) : undefined);
|
|
29
|
+
|
|
30
|
+
export { toNullable };
|
|
31
|
+
//# sourceMappingURL=optional-to-nullable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-to-nullable.mjs","sources":["../../../../src/functional/optional/impl/optional-to-nullable.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,UAAU,GAAG,CACxB,QAAW,MACgB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Unwrap } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Unwraps an `Optional`, returning the contained value or a default value if
|
|
4
|
+
* it's `None`.
|
|
5
|
+
*
|
|
6
|
+
* Supports both direct usage and curried form for functional composition.
|
|
7
|
+
* This is often preferred over `unwrap()` when you have a sensible fallback
|
|
8
|
+
* value.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* const withValue = Optional.some(5);
|
|
14
|
+
* const withoutValue = Optional.none as Optional<number>;
|
|
15
|
+
*
|
|
16
|
+
* assert(Optional.unwrapOr(withValue, 0) === 5);
|
|
17
|
+
* assert(Optional.unwrapOr(withoutValue, 0) === 0);
|
|
18
|
+
*
|
|
19
|
+
* const unwrapWithDefault = Optional.unwrapOr(10);
|
|
20
|
+
*
|
|
21
|
+
* assert(unwrapWithDefault(Optional.some(3)) === 3);
|
|
22
|
+
* assert(unwrapWithDefault(Optional.none) === 10);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @template O The `UnknownOptional` type to unwrap.
|
|
26
|
+
* @template D The type of the default value.
|
|
27
|
+
* @param optional The `Optional` to unwrap.
|
|
28
|
+
* @param defaultValue The value to return if `optional` is `None`.
|
|
29
|
+
* @returns The contained value if `Some`, otherwise `defaultValue`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function unwrapOr<O extends UnknownOptional, D>(optional: O, defaultValue: D): D | Unwrap<O>;
|
|
32
|
+
export declare function unwrapOr<S, D>(defaultValue: D): (optional: Optional<S>) => D | S;
|
|
33
|
+
//# sourceMappingURL=optional-unwrap-or.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-unwrap-or.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-unwrap-or.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EACnD,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,CAAC,GACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAGjB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,YAAY,EAAE,CAAC,GACd,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { unwrap } from './optional-unwrap.mjs';
|
|
2
|
+
|
|
3
|
+
function unwrapOr(...args) {
|
|
4
|
+
switch (args.length) {
|
|
5
|
+
case 2: {
|
|
6
|
+
const [optional, defaultValue] = args;
|
|
7
|
+
return unwrapOrImpl(optional, defaultValue);
|
|
8
|
+
}
|
|
9
|
+
case 1: {
|
|
10
|
+
// Curried version: first argument is default value
|
|
11
|
+
const [defaultValue] = args;
|
|
12
|
+
return (optional) => unwrapOrImpl(optional, defaultValue);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const unwrapOrImpl = (optional, defaultValue) => unwrap(optional) ?? defaultValue;
|
|
17
|
+
|
|
18
|
+
export { unwrapOr };
|
|
19
|
+
//# sourceMappingURL=optional-unwrap-or.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-unwrap-or.mjs","sources":["../../../../src/functional/optional/impl/optional-unwrap-or.mts"],"sourcesContent":[null],"names":[],"mappings":";;AA0CM,SAAU,QAAQ,CACtB,GAAG,IAA0E,EAAA;AAE7E,IAAA,QAAQ,IAAI,CAAC,MAAM;QACjB,KAAK,CAAC,EAAE;AACN,YAAA,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,IAAI;AACrC,YAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC7C;QAEA,KAAK,CAAC,EAAE;;AAEN,YAAA,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI;YAC3B,OAAO,CAAC,QAA6B,KACnC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC;QACxC;;AAEJ;AAEA,MAAM,YAAY,GAAG,CACnB,QAAW,EACX,YAAe,KACG,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAY;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Unwrap } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Unwraps an `Optional`, returning the contained value. Throws an error if
|
|
4
|
+
* the `Optional` is `None`.
|
|
5
|
+
*
|
|
6
|
+
* This is a safer alternative to direct value access when you know the
|
|
7
|
+
* Optional should contain a value. Use this method when an empty Optional
|
|
8
|
+
* represents a programming error or unexpected condition.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* const present = Optional.some('available');
|
|
14
|
+
*
|
|
15
|
+
* assert(Optional.unwrapThrow(present) === 'available');
|
|
16
|
+
* assert.throws(
|
|
17
|
+
* () => Optional.unwrapThrow(Optional.none),
|
|
18
|
+
* /has failed because it is `None`/u,
|
|
19
|
+
* );
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @template O The `UnknownOptional` type to unwrap.
|
|
23
|
+
* @param optional The `Optional` to unwrap.
|
|
24
|
+
* @returns The contained value if `Some`.
|
|
25
|
+
* @throws {Error} Error with message "`unwrapThrow()` has failed because it
|
|
26
|
+
* is `None`" if the `Optional` is `None`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const unwrapThrow: <O extends UnknownOptional>(optional: O) => Unwrap<O>;
|
|
29
|
+
//# sourceMappingURL=optional-unwrap-throw.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-unwrap-throw.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-unwrap-throw.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,eAAe,EACnD,UAAU,CAAC,KACV,MAAM,CAAC,CAAC,CAOV,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { isSome } from './optional-is-some.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Unwraps an `Optional`, returning the contained value. Throws an error if
|
|
5
|
+
* the `Optional` is `None`.
|
|
6
|
+
*
|
|
7
|
+
* This is a safer alternative to direct value access when you know the
|
|
8
|
+
* Optional should contain a value. Use this method when an empty Optional
|
|
9
|
+
* represents a programming error or unexpected condition.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* const present = Optional.some('available');
|
|
15
|
+
*
|
|
16
|
+
* assert(Optional.unwrapThrow(present) === 'available');
|
|
17
|
+
* assert.throws(
|
|
18
|
+
* () => Optional.unwrapThrow(Optional.none),
|
|
19
|
+
* /has failed because it is `None`/u,
|
|
20
|
+
* );
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @template O The `UnknownOptional` type to unwrap.
|
|
24
|
+
* @param optional The `Optional` to unwrap.
|
|
25
|
+
* @returns The contained value if `Some`.
|
|
26
|
+
* @throws {Error} Error with message "`unwrapThrow()` has failed because it
|
|
27
|
+
* is `None`" if the `Optional` is `None`.
|
|
28
|
+
*/
|
|
29
|
+
const unwrapThrow = (optional) => {
|
|
30
|
+
if (isSome(optional)) {
|
|
31
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
32
|
+
return optional.value;
|
|
33
|
+
}
|
|
34
|
+
throw new Error('`unwrapThrow()` has failed because it is `None`');
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { unwrapThrow };
|
|
38
|
+
//# sourceMappingURL=optional-unwrap-throw.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-unwrap-throw.mjs","sources":["../../../../src/functional/optional/impl/optional-unwrap-throw.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,WAAW,GAAG,CACzB,QAAW,KACE;AACb,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;;QAEpB,OAAO,QAAQ,CAAC,KAAkB;IACpC;AAEA,IAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AACpE;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Unwrap } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Unwraps an `Optional`, returning the contained value or `undefined` if
|
|
4
|
+
* empty.
|
|
5
|
+
*
|
|
6
|
+
* This function provides a safe way to extract values from Optionals without
|
|
7
|
+
* throwing exceptions. It has overloaded behavior based on the type:
|
|
8
|
+
*
|
|
9
|
+
* - For `Some<T>`: Always returns `T` (guaranteed by type system)
|
|
10
|
+
* - For general `Optional<T>`: Returns `T | undefined`
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* const someString = Optional.some('text');
|
|
16
|
+
* const noneString = Optional.none as Optional<string>;
|
|
17
|
+
*
|
|
18
|
+
* assert(Optional.unwrap(someString) === 'text');
|
|
19
|
+
* assert(Optional.unwrap(noneString) === undefined);
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @template O The `UnknownOptional` type to unwrap.
|
|
23
|
+
* @param optional The `Optional` to unwrap.
|
|
24
|
+
* @returns The contained value if `Some`, otherwise `undefined`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function unwrap<O extends Some<unknown>>(optional: O): Unwrap<O>;
|
|
27
|
+
export declare function unwrap<O extends UnknownOptional>(optional: O): Unwrap<O> | undefined;
|
|
28
|
+
//# sourceMappingURL=optional-unwrap.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-unwrap.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-unwrap.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAExE,wBAAgB,MAAM,CAAC,CAAC,SAAS,eAAe,EAC9C,QAAQ,EAAE,CAAC,GACV,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { isSome } from './optional-is-some.mjs';
|
|
2
|
+
|
|
3
|
+
function unwrap(optional) {
|
|
4
|
+
return isSome(optional)
|
|
5
|
+
? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
6
|
+
optional.value
|
|
7
|
+
: undefined;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { unwrap };
|
|
11
|
+
//# sourceMappingURL=optional-unwrap.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-unwrap.mjs","sources":["../../../../src/functional/optional/impl/optional-unwrap.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAiCM,SAAU,MAAM,CACpB,QAAW,EAAA;IAEX,OAAO,MAAM,CAAC,QAAQ;AACpB;AACG,YAAA,QAAQ,CAAC;UACV,SAAS;AACf;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Combines two `Optional` values into a single `Optional` containing a tuple.
|
|
3
|
+
* If either `Optional` is `None`, returns `None`.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* const zipped = Optional.zip(Optional.some('left'), Optional.some(1));
|
|
9
|
+
*
|
|
10
|
+
* assert.ok(Optional.isSome(zipped));
|
|
11
|
+
* if (Optional.isSome(zipped)) {
|
|
12
|
+
* const expected: readonly [string, number] = ['left', 1];
|
|
13
|
+
* assert.deepStrictEqual(zipped.value, expected);
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* const missing = Optional.zip(
|
|
17
|
+
* Optional.some('value'),
|
|
18
|
+
* Optional.none as Optional<number>,
|
|
19
|
+
* );
|
|
20
|
+
*
|
|
21
|
+
* assert.deepStrictEqual(missing, Optional.none);
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @template A The value type of the first `Optional`.
|
|
25
|
+
* @template B The value type of the second `Optional`.
|
|
26
|
+
* @param optionalA The first `Optional`.
|
|
27
|
+
* @param optionalB The second `Optional`.
|
|
28
|
+
* @returns An `Optional` containing a tuple of both values, or `None`.
|
|
29
|
+
*/
|
|
30
|
+
export declare const zip: <A, const B>(optionalA: Optional<A>, optionalB: Optional<B>) => Optional<readonly [A, B]>;
|
|
31
|
+
//# sourceMappingURL=optional-zip.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-zip.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/optional-zip.mts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAC5B,WAAW,QAAQ,CAAC,CAAC,CAAC,EACtB,WAAW,QAAQ,CAAC,CAAC,CAAC,KACrB,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAGjB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { isSome } from './optional-is-some.mjs';
|
|
2
|
+
import { none } from './optional-none.mjs';
|
|
3
|
+
import { some } from './optional-some.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Combines two `Optional` values into a single `Optional` containing a tuple.
|
|
7
|
+
* If either `Optional` is `None`, returns `None`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* const zipped = Optional.zip(Optional.some('left'), Optional.some(1));
|
|
13
|
+
*
|
|
14
|
+
* assert.ok(Optional.isSome(zipped));
|
|
15
|
+
* if (Optional.isSome(zipped)) {
|
|
16
|
+
* const expected: readonly [string, number] = ['left', 1];
|
|
17
|
+
* assert.deepStrictEqual(zipped.value, expected);
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* const missing = Optional.zip(
|
|
21
|
+
* Optional.some('value'),
|
|
22
|
+
* Optional.none as Optional<number>,
|
|
23
|
+
* );
|
|
24
|
+
*
|
|
25
|
+
* assert.deepStrictEqual(missing, Optional.none);
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @template A The value type of the first `Optional`.
|
|
29
|
+
* @template B The value type of the second `Optional`.
|
|
30
|
+
* @param optionalA The first `Optional`.
|
|
31
|
+
* @param optionalB The second `Optional`.
|
|
32
|
+
* @returns An `Optional` containing a tuple of both values, or `None`.
|
|
33
|
+
*/
|
|
34
|
+
const zip = (optionalA, optionalB) => isSome(optionalA) && isSome(optionalB)
|
|
35
|
+
? some([optionalA.value, optionalB.value])
|
|
36
|
+
: none;
|
|
37
|
+
|
|
38
|
+
export { zip };
|
|
39
|
+
//# sourceMappingURL=optional-zip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-zip.mjs","sources":["../../../../src/functional/optional/impl/optional-zip.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;AACI,MAAM,GAAG,GAAG,CACjB,SAAsB,EACtB,SAAsB,KAEtB,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS;AACnC,MAAE,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAU;MAChD;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** @internal String literal tag to identify the 'Some' variant of Optional. */
|
|
2
|
+
export declare const SomeTypeTagName: Some<unknown>['$$tag'];
|
|
3
|
+
/** @internal String literal tag to identify the 'None' variant of Optional. */
|
|
4
|
+
export declare const NoneTypeTagName: None['$$tag'];
|
|
5
|
+
//# sourceMappingURL=tag.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.d.mts","sourceRoot":"","sources":["../../../../src/functional/optional/impl/tag.mts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CACnB,CAAC;AAEjC,+EAA+E;AAC/E,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,OAAO,CAAkC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** @internal String literal tag to identify the 'Some' variant of Optional. */
|
|
2
|
+
const SomeTypeTagName = 'ts-data-forge::Optional.some';
|
|
3
|
+
/** @internal String literal tag to identify the 'None' variant of Optional. */
|
|
4
|
+
const NoneTypeTagName = 'ts-data-forge::Optional.none';
|
|
5
|
+
|
|
6
|
+
export { NoneTypeTagName, SomeTypeTagName };
|
|
7
|
+
//# sourceMappingURL=tag.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.mjs","sources":["../../../../src/functional/optional/impl/tag.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACO,MAAM,eAAe,GAC1B;AAEF;AACO,MAAM,eAAe,GAAkB;;;;"}
|