ts-data-forge 3.3.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -13
- package/dist/array/impl/array-utils-creation.d.mts +116 -0
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-creation.mjs +110 -0
- package/dist/array/impl/array-utils-creation.mjs.map +1 -0
- package/dist/array/impl/array-utils-element-access.d.mts +60 -0
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -0
- package/dist/array/impl/array-utils-element-access.mjs +66 -0
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -0
- package/dist/array/impl/array-utils-iterators.d.mts +59 -0
- package/dist/array/impl/array-utils-iterators.d.mts.map +1 -0
- package/dist/array/impl/array-utils-iterators.mjs +104 -0
- package/dist/array/impl/array-utils-iterators.mjs.map +1 -0
- package/dist/array/impl/array-utils-modification.d.mts +154 -0
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -0
- package/dist/array/impl/array-utils-modification.mjs +139 -0
- package/dist/array/impl/array-utils-modification.mjs.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts +213 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.mjs +162 -0
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
- package/dist/array/impl/array-utils-search.d.mts +178 -0
- package/dist/array/impl/array-utils-search.d.mts.map +1 -0
- package/dist/array/impl/array-utils-search.mjs +153 -0
- package/dist/array/impl/array-utils-search.mjs.map +1 -0
- package/dist/array/impl/array-utils-set-op.d.mts +100 -0
- package/dist/array/impl/array-utils-set-op.d.mts.map +1 -0
- package/dist/array/impl/array-utils-set-op.mjs +137 -0
- package/dist/array/impl/array-utils-set-op.mjs.map +1 -0
- package/dist/array/impl/array-utils-size.d.mts +24 -0
- package/dist/array/impl/array-utils-size.d.mts.map +1 -0
- package/dist/array/impl/array-utils-size.mjs +28 -0
- package/dist/array/impl/array-utils-size.mjs.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts +18 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs +49 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -0
- package/dist/array/impl/array-utils-slicing.d.mts +120 -0
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slicing.mjs +140 -0
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -0
- package/dist/array/impl/array-utils-transformation.d.mts +348 -0
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-transformation.mjs +329 -0
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -0
- package/dist/array/impl/array-utils-validation.d.mts +149 -0
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-validation.mjs +166 -0
- package/dist/array/impl/array-utils-validation.mjs.map +1 -0
- package/dist/array/impl/index.d.mts +13 -0
- package/dist/array/impl/index.d.mts.map +1 -0
- package/dist/array/impl/index.mjs +13 -0
- package/dist/array/impl/index.mjs.map +1 -0
- package/dist/array/index.d.mts +1 -1
- package/dist/array/index.d.mts.map +1 -1
- package/dist/array/index.mjs +2 -1
- package/dist/array/index.mjs.map +1 -1
- package/dist/collections/imap-mapped.d.mts +83 -254
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +40 -170
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts +436 -164
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +83 -101
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.d.mts +828 -345
- package/dist/collections/iset-mapped.d.mts.map +1 -1
- package/dist/collections/iset-mapped.mjs +200 -242
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.d.mts +397 -205
- package/dist/collections/iset.d.mts.map +1 -1
- package/dist/collections/iset.mjs +102 -184
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.d.mts +155 -136
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/queue.mjs +59 -160
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.d.mts +154 -155
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/collections/stack.mjs +58 -207
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.d.mts +2 -0
- package/dist/entry-point.d.mts.map +1 -1
- package/dist/entry-point.mjs +8 -5
- package/dist/entry-point.mjs.map +1 -1
- package/dist/expect-type.d.mts +43 -172
- package/dist/expect-type.d.mts.map +1 -1
- package/dist/expect-type.mjs +43 -172
- package/dist/expect-type.mjs.map +1 -1
- package/dist/functional/index.d.mts +2 -2
- package/dist/functional/index.d.mts.map +1 -1
- package/dist/functional/index.mjs +4 -2
- package/dist/functional/index.mjs.map +1 -1
- package/dist/functional/match.d.mts +35 -140
- package/dist/functional/match.d.mts.map +1 -1
- package/dist/functional/match.mjs.map +1 -1
- package/dist/functional/optional/impl/index.d.mts +18 -0
- package/dist/functional/optional/impl/index.d.mts.map +1 -0
- package/dist/functional/optional/impl/index.mjs +17 -0
- package/dist/functional/optional/impl/index.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts +29 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs +25 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-filter.d.mts +29 -0
- package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-filter.mjs +28 -0
- package/dist/functional/optional/impl/optional-filter.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts +33 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs +21 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts +24 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs +29 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts +18 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs +27 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-map.d.mts +31 -0
- package/dist/functional/optional/impl/optional-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-map.mjs +25 -0
- package/dist/functional/optional/impl/optional-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-none.d.mts +16 -0
- package/dist/functional/optional/impl/optional-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-none.mjs +20 -0
- package/dist/functional/optional/impl/optional-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts +35 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.mjs +19 -0
- package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-some.d.mts +19 -0
- package/dist/functional/optional/impl/optional-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-some.mjs +26 -0
- package/dist/functional/optional/impl/optional-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts +27 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs +31 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts +33 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs +19 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +29 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs +38 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts +28 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs +11 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-zip.d.mts +31 -0
- package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-zip.mjs +39 -0
- package/dist/functional/optional/impl/optional-zip.mjs.map +1 -0
- package/dist/functional/optional/impl/tag.d.mts +5 -0
- package/dist/functional/optional/impl/tag.d.mts.map +1 -0
- package/dist/functional/optional/impl/tag.mjs +7 -0
- package/dist/functional/optional/impl/tag.mjs.map +1 -0
- package/dist/functional/optional/impl/types.d.mts +22 -0
- package/dist/functional/optional/impl/types.d.mts.map +1 -0
- package/dist/functional/optional/impl/types.mjs +2 -0
- package/dist/functional/optional/impl/types.mjs.map +1 -0
- package/dist/functional/optional/index.d.mts +2 -0
- package/dist/functional/optional/index.d.mts.map +1 -0
- package/dist/functional/optional/index.mjs +3 -0
- package/dist/functional/optional/index.mjs.map +1 -0
- package/dist/functional/pipe.d.mts +63 -117
- package/dist/functional/pipe.d.mts.map +1 -1
- package/dist/functional/pipe.mjs +4 -3
- package/dist/functional/pipe.mjs.map +1 -1
- package/dist/functional/result/impl/index.d.mts +24 -0
- package/dist/functional/result/impl/index.d.mts.map +1 -0
- package/dist/functional/result/impl/index.mjs +23 -0
- package/dist/functional/result/impl/index.mjs.map +1 -0
- package/dist/functional/result/impl/result-err.d.mts +25 -0
- package/dist/functional/result/impl/result-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-err.mjs +32 -0
- package/dist/functional/result/impl/result-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts +27 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs +26 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -0
- package/dist/functional/result/impl/result-flat-map.d.mts +39 -0
- package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-flat-map.mjs +24 -0
- package/dist/functional/result/impl/result-flat-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-fold.d.mts +45 -0
- package/dist/functional/result/impl/result-fold.d.mts.map +1 -0
- package/dist/functional/result/impl/result-fold.mjs +26 -0
- package/dist/functional/result/impl/result-fold.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-promise.d.mts +32 -0
- package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-promise.mjs +32 -0
- package/dist/functional/result/impl/result-from-promise.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts +29 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.mjs +46 -0
- package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-err.d.mts +20 -0
- package/dist/functional/result/impl/result-is-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-err.mjs +23 -0
- package/dist/functional/result/impl/result-is-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-ok.d.mts +20 -0
- package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-ok.mjs +23 -0
- package/dist/functional/result/impl/result-is-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-result.d.mts +17 -0
- package/dist/functional/result/impl/result-is-result.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-result.mjs +26 -0
- package/dist/functional/result/impl/result-is-result.mjs.map +1 -0
- package/dist/functional/result/impl/result-map-err.d.mts +33 -0
- package/dist/functional/result/impl/result-map-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map-err.mjs +25 -0
- package/dist/functional/result/impl/result-map-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-map.d.mts +34 -0
- package/dist/functional/result/impl/result-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map.mjs +25 -0
- package/dist/functional/result/impl/result-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-ok.d.mts +25 -0
- package/dist/functional/result/impl/result-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-ok.mjs +32 -0
- package/dist/functional/result/impl/result-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-or-else.d.mts +32 -0
- package/dist/functional/result/impl/result-or-else.d.mts.map +1 -0
- package/dist/functional/result/impl/result-or-else.mjs +20 -0
- package/dist/functional/result/impl/result-or-else.mjs.map +1 -0
- package/dist/functional/result/impl/result-swap.d.mts +20 -0
- package/dist/functional/result/impl/result-swap.d.mts.map +1 -0
- package/dist/functional/result/impl/result-swap.mjs +28 -0
- package/dist/functional/result/impl/result-swap.mjs.map +1 -0
- package/dist/functional/result/impl/result-to-optional.d.mts +28 -0
- package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -0
- package/dist/functional/result/impl/result-to-optional.mjs +34 -0
- package/dist/functional/result/impl/result-to-optional.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs +47 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts +31 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs +36 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts +23 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs +11 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs +41 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-zip.d.mts +29 -0
- package/dist/functional/result/impl/result-zip.d.mts.map +1 -0
- package/dist/functional/result/impl/result-zip.mjs +38 -0
- package/dist/functional/result/impl/result-zip.mjs.map +1 -0
- package/dist/functional/result/impl/tag.d.mts +5 -0
- package/dist/functional/result/impl/tag.d.mts.map +1 -0
- package/dist/functional/result/impl/tag.mjs +7 -0
- package/dist/functional/result/impl/tag.mjs.map +1 -0
- package/dist/functional/result/impl/types.d.mts +29 -0
- package/dist/functional/result/impl/types.d.mts.map +1 -0
- package/dist/functional/result/impl/types.mjs +2 -0
- package/dist/functional/result/impl/types.mjs.map +1 -0
- package/dist/functional/result/index.d.mts +2 -0
- package/dist/functional/result/index.d.mts.map +1 -0
- package/dist/functional/result/index.mjs +3 -0
- package/dist/functional/result/index.mjs.map +1 -0
- package/dist/globals.d.mts +95 -5
- package/dist/guard/has-key.d.mts +23 -74
- package/dist/guard/has-key.d.mts.map +1 -1
- package/dist/guard/has-key.mjs +23 -74
- package/dist/guard/has-key.mjs.map +1 -1
- package/dist/guard/is-non-empty-string.d.mts +20 -87
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/guard/is-non-empty-string.mjs +20 -87
- package/dist/guard/is-non-empty-string.mjs.map +1 -1
- package/dist/guard/is-non-null-object.d.mts +14 -84
- package/dist/guard/is-non-null-object.d.mts.map +1 -1
- package/dist/guard/is-non-null-object.mjs +14 -84
- package/dist/guard/is-non-null-object.mjs.map +1 -1
- package/dist/guard/is-primitive.d.mts +13 -126
- package/dist/guard/is-primitive.d.mts.map +1 -1
- package/dist/guard/is-primitive.mjs +13 -126
- package/dist/guard/is-primitive.mjs.map +1 -1
- package/dist/guard/is-record.d.mts +21 -132
- package/dist/guard/is-record.d.mts.map +1 -1
- package/dist/guard/is-record.mjs +21 -132
- package/dist/guard/is-record.mjs.map +1 -1
- package/dist/guard/is-type.d.mts +201 -238
- package/dist/guard/is-type.d.mts.map +1 -1
- package/dist/guard/is-type.mjs +201 -238
- package/dist/guard/is-type.mjs.map +1 -1
- package/dist/guard/key-is-in.d.mts +22 -139
- package/dist/guard/key-is-in.d.mts.map +1 -1
- package/dist/guard/key-is-in.mjs +22 -139
- package/dist/guard/key-is-in.mjs.map +1 -1
- package/dist/index.d.mts +0 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -5
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.d.mts +29 -62
- package/dist/iterator/range.d.mts.map +1 -1
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts +191 -122
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +246 -144
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +24 -156
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +28 -160
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +122 -120
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +123 -121
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +22 -30
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +23 -31
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +22 -31
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +23 -32
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +32 -40
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +25 -35
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +27 -36
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +26 -41
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +15 -30
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +16 -31
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +28 -36
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +30 -37
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +40 -41
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +30 -44
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +133 -123
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +134 -124
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +24 -35
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +25 -36
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +24 -35
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +25 -36
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +161 -35
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +24 -35
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +25 -36
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +26 -36
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +27 -37
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +140 -99
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +143 -102
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +24 -33
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +26 -35
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +121 -30
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +122 -31
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +26 -34
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +27 -35
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +26 -68
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +27 -69
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +37 -101
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +40 -171
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +45 -55
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +47 -156
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/num.d.mts +145 -206
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/num.mjs +143 -199
- package/dist/number/num.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +97 -21
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +91 -22
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts +126 -208
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +68 -102
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/cast-mutable.d.mts +12 -88
- package/dist/others/cast-mutable.d.mts.map +1 -1
- package/dist/others/cast-mutable.mjs +13 -89
- package/dist/others/cast-mutable.mjs.map +1 -1
- package/dist/others/cast-readonly.d.mts +12 -168
- package/dist/others/cast-readonly.d.mts.map +1 -1
- package/dist/others/cast-readonly.mjs +13 -169
- package/dist/others/cast-readonly.mjs.map +1 -1
- package/dist/others/if-then.d.mts +6 -83
- package/dist/others/if-then.d.mts.map +1 -1
- package/dist/others/if-then.mjs +6 -83
- package/dist/others/if-then.mjs.map +1 -1
- package/dist/others/map-nullable.d.mts +12 -136
- package/dist/others/map-nullable.d.mts.map +1 -1
- package/dist/others/map-nullable.mjs.map +1 -1
- package/dist/others/memoize-function.d.mts +14 -157
- package/dist/others/memoize-function.d.mts.map +1 -1
- package/dist/others/memoize-function.mjs +14 -157
- package/dist/others/memoize-function.mjs.map +1 -1
- package/dist/others/tuple.d.mts +33 -151
- package/dist/others/tuple.d.mts.map +1 -1
- package/dist/others/tuple.mjs +33 -151
- package/dist/others/tuple.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts +11 -125
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +12 -126
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/dist/promise/promise.d.mts +33 -21
- package/dist/promise/promise.d.mts.map +1 -1
- package/dist/promise/promise.mjs +36 -24
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +58 -44
- package/src/array/impl/array-utils-creation.mts +192 -0
- package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
- package/src/array/impl/array-utils-element-access.mts +115 -0
- package/src/array/impl/array-utils-element-access.test.mts +151 -0
- package/src/array/impl/array-utils-iterators.mts +79 -0
- package/src/array/impl/array-utils-iterators.test.mts +98 -0
- package/src/array/impl/array-utils-modification.mts +434 -0
- package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
- package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
- package/src/array/impl/array-utils-reducing-value.mts +535 -0
- package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +53 -58
- package/src/array/impl/array-utils-search.mts +509 -0
- package/src/array/impl/array-utils-search.test.mts +346 -0
- package/src/array/impl/array-utils-set-op.mts +166 -0
- package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
- package/src/array/impl/array-utils-size.mts +30 -0
- package/src/array/impl/array-utils-size.test.mts +9 -0
- package/src/array/impl/array-utils-slice-clamped.mts +51 -0
- package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +13 -13
- package/src/array/impl/array-utils-slicing.mts +275 -0
- package/src/array/impl/array-utils-slicing.test.mts +158 -0
- package/src/array/impl/array-utils-transformation.mts +746 -0
- package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
- package/src/array/impl/array-utils-validation.mts +241 -0
- package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
- package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
- package/src/array/impl/index.mts +12 -0
- package/src/array/index.mts +1 -1
- package/src/collections/imap-mapped.mts +99 -265
- package/src/collections/imap.mts +477 -174
- package/src/collections/imap.test.mts +12 -19
- package/src/collections/iset-mapped.mts +892 -358
- package/src/collections/iset.mts +429 -213
- package/src/collections/queue.mts +174 -200
- package/src/collections/stack.mts +172 -245
- package/src/collections/stack.test.mts +9 -1
- package/src/entry-point.mts +2 -0
- package/src/expect-type.mts +43 -172
- package/src/functional/index.mts +2 -2
- package/src/functional/match.mts +35 -145
- package/src/functional/optional/impl/index.mts +17 -0
- package/src/functional/optional/impl/optional-expect-to-be.mts +65 -0
- package/src/functional/optional/impl/optional-filter.mts +71 -0
- package/src/functional/optional/impl/optional-flat-map.mts +67 -0
- package/src/functional/optional/impl/optional-from-nullable.mts +28 -0
- package/src/functional/optional/impl/optional-is-none.mts +25 -0
- package/src/functional/optional/impl/optional-is-optional.mts +27 -0
- package/src/functional/optional/impl/optional-is-some.mts +25 -0
- package/src/functional/optional/impl/optional-map.mts +69 -0
- package/src/functional/optional/impl/optional-none.mts +17 -0
- package/src/functional/optional/impl/optional-or-else.mts +73 -0
- package/src/functional/optional/impl/optional-some.mts +23 -0
- package/src/functional/optional/impl/optional-to-nullable.mts +31 -0
- package/src/functional/optional/impl/optional-unwrap-or.mts +64 -0
- package/src/functional/optional/impl/optional-unwrap-throw.mts +39 -0
- package/src/functional/optional/impl/optional-unwrap.mts +41 -0
- package/src/functional/optional/impl/optional-zip.mts +40 -0
- package/src/functional/optional/impl/tag.mts +6 -0
- package/src/functional/optional/impl/types.mts +28 -0
- package/src/functional/optional/index.mts +1 -0
- package/src/functional/optional.test.mts +11 -9
- package/src/functional/pipe.mts +65 -118
- package/src/functional/pipe.test.mts +1 -1
- package/src/functional/result/impl/index.mts +23 -0
- package/src/functional/result/impl/result-err.mts +29 -0
- package/src/functional/result/impl/result-expect-to-be.mts +63 -0
- package/src/functional/result/impl/result-flat-map.mts +79 -0
- package/src/functional/result/impl/result-fold.mts +95 -0
- package/src/functional/result/impl/result-from-promise.mts +39 -0
- package/src/functional/result/impl/result-from-throwable.mts +42 -0
- package/src/functional/result/impl/result-is-err.mts +23 -0
- package/src/functional/result/impl/result-is-ok.mts +23 -0
- package/src/functional/result/impl/result-is-result.mts +23 -0
- package/src/functional/result/impl/result-map-err.mts +72 -0
- package/src/functional/result/impl/result-map.mts +73 -0
- package/src/functional/result/impl/result-ok.mts +29 -0
- package/src/functional/result/impl/result-or-else.mts +63 -0
- package/src/functional/result/impl/result-swap.mts +28 -0
- package/src/functional/result/impl/result-to-optional.mts +34 -0
- package/src/functional/result/impl/result-unwrap-err-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-err-throw.mts +53 -0
- package/src/functional/result/impl/result-unwrap-err.mts +36 -0
- package/src/functional/result/impl/result-unwrap-ok-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-ok.mts +35 -0
- package/src/functional/result/impl/result-unwrap-throw.mts +43 -0
- package/src/functional/result/impl/result-zip.mts +39 -0
- package/src/functional/result/impl/tag.mts +6 -0
- package/src/functional/result/impl/types.mts +35 -0
- package/src/functional/result/index.mts +1 -0
- package/src/functional/result.test.mts +14 -6
- package/src/globals.d.mts +95 -5
- package/src/guard/has-key.mts +23 -74
- package/src/guard/is-non-empty-string.mts +20 -87
- package/src/guard/is-non-empty-string.test.mts +1 -1
- package/src/guard/is-non-null-object.mts +14 -84
- package/src/guard/is-non-null-object.test.mts +4 -4
- package/src/guard/is-primitive.mts +13 -126
- package/src/guard/is-primitive.test.mts +4 -4
- package/src/guard/is-record.mts +21 -132
- package/src/guard/is-type.mts +201 -238
- package/src/guard/is-type.test.mts +10 -10
- package/src/guard/key-is-in.mts +22 -139
- package/src/index.mts +0 -2
- package/src/iterator/range.mts +29 -62
- package/src/json/json.mts +202 -134
- package/src/json/json.test.mts +1 -3
- package/src/number/branded-types/finite-number.mts +34 -166
- package/src/number/branded-types/int.mts +129 -127
- package/src/number/branded-types/int16.mts +31 -39
- package/src/number/branded-types/int16.test.mts +24 -24
- package/src/number/branded-types/int32.mts +31 -40
- package/src/number/branded-types/int32.test.mts +39 -39
- package/src/number/branded-types/non-negative-finite-number.mts +39 -47
- package/src/number/branded-types/non-negative-int16.mts +33 -43
- package/src/number/branded-types/non-negative-int16.test.mts +16 -16
- package/src/number/branded-types/non-negative-int32.mts +35 -44
- package/src/number/branded-types/non-negative-int32.test.mts +30 -30
- package/src/number/branded-types/non-zero-finite-number.mts +32 -47
- package/src/number/branded-types/non-zero-int.mts +22 -37
- package/src/number/branded-types/non-zero-int16.mts +36 -44
- package/src/number/branded-types/non-zero-int16.test.mts +26 -26
- package/src/number/branded-types/non-zero-int32.mts +38 -45
- package/src/number/branded-types/non-zero-int32.test.mts +45 -42
- package/src/number/branded-types/non-zero-safe-int.mts +48 -49
- package/src/number/branded-types/non-zero-uint16.mts +33 -44
- package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
- package/src/number/branded-types/non-zero-uint32.mts +33 -44
- package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
- package/src/number/branded-types/positive-finite-number.mts +37 -51
- package/src/number/branded-types/positive-int.mts +142 -132
- package/src/number/branded-types/positive-int16.mts +33 -44
- package/src/number/branded-types/positive-int16.test.mts +14 -14
- package/src/number/branded-types/positive-int32.mts +33 -44
- package/src/number/branded-types/positive-int32.test.mts +26 -26
- package/src/number/branded-types/positive-safe-int.mts +169 -43
- package/src/number/branded-types/positive-uint16.mts +33 -44
- package/src/number/branded-types/positive-uint16.test.mts +16 -16
- package/src/number/branded-types/positive-uint32.mts +35 -45
- package/src/number/branded-types/positive-uint32.test.mts +31 -28
- package/src/number/branded-types/safe-int.mts +151 -110
- package/src/number/branded-types/safe-uint.mts +34 -43
- package/src/number/branded-types/uint.mts +129 -38
- package/src/number/branded-types/uint16.mts +35 -43
- package/src/number/branded-types/uint16.test.mts +16 -16
- package/src/number/branded-types/uint32.mts +35 -77
- package/src/number/branded-types/uint32.test.mts +28 -28
- package/src/number/enum/int8.mts +42 -173
- package/src/number/enum/int8.test.mts +9 -9
- package/src/number/enum/uint8.mts +49 -158
- package/src/number/enum/uint8.test.mts +8 -8
- package/src/number/num.mts +157 -212
- package/src/number/num.test.mts +4 -4
- package/src/number/refined-number-utils.mts +109 -26
- package/src/object/object.mts +130 -212
- package/src/object/object.test.mts +29 -0
- package/src/others/cast-mutable.mts +13 -89
- package/src/others/cast-mutable.test.mts +80 -0
- package/src/others/cast-readonly.mts +13 -169
- package/src/others/if-then.mts +6 -83
- package/src/others/map-nullable.mts +12 -136
- package/src/others/map-nullable.test.mts +6 -6
- package/src/others/memoize-function.mts +14 -157
- package/src/others/tuple.mts +33 -151
- package/src/others/unknown-to-string.mts +12 -126
- package/src/others/unknown-to-string.test.mts +13 -1
- package/src/promise/promise.mts +34 -21
- package/src/promise/promise.test.mts +43 -0
- package/dist/array/array-utils.d.mts +0 -2956
- package/dist/array/array-utils.d.mts.map +0 -1
- package/dist/array/array-utils.mjs +0 -1838
- package/dist/array/array-utils.mjs.map +0 -1
- package/dist/functional/optional.d.mts +0 -360
- package/dist/functional/optional.d.mts.map +0 -1
- package/dist/functional/optional.mjs +0 -268
- package/dist/functional/optional.mjs.map +0 -1
- package/dist/functional/result.d.mts +0 -611
- package/dist/functional/result.d.mts.map +0 -1
- package/dist/functional/result.mjs +0 -545
- package/dist/functional/result.mjs.map +0 -1
- package/src/array/array-utils-search.test.mts +0 -169
- package/src/array/array-utils-slicing.test.mts +0 -274
- package/src/array/array-utils.mts +0 -4834
- package/src/functional/optional.mts +0 -591
- package/src/functional/result.mts +0 -986
package/dist/json/json.d.mts
CHANGED
|
@@ -1,172 +1,241 @@
|
|
|
1
|
-
import { Result } from '../functional/index.mjs';
|
|
2
1
|
/**
|
|
3
2
|
* A collection of type-safe JSON utility functions that provide safe parsing,
|
|
4
3
|
* stringification, and manipulation of JSON data. All functions return `Result`
|
|
5
4
|
* types to handle errors without throwing exceptions.
|
|
6
|
-
*
|
|
7
|
-
* @example Basic usage
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { Json, Result } from 'ts-data-forge';
|
|
10
|
-
*
|
|
11
|
-
* // Parse JSON safely
|
|
12
|
-
* const parseResult = Json.parse('{"name": "Alice", "age": 30}');
|
|
13
|
-
* if (Result.isOk(parseResult)) {
|
|
14
|
-
* console.log(parseResult.value); // { name: 'Alice', age: 30 }
|
|
15
|
-
* }
|
|
16
|
-
*
|
|
17
|
-
* // Stringify with error handling
|
|
18
|
-
* const stringifyResult = Json.stringify({ name: 'Bob', age: 25 });
|
|
19
|
-
* if (Result.isOk(stringifyResult)) {
|
|
20
|
-
* console.log(stringifyResult.value); // '{"name":"Bob","age":25}'
|
|
21
|
-
* }
|
|
22
|
-
* ```
|
|
23
5
|
*/
|
|
24
6
|
export declare namespace Json {
|
|
25
7
|
/**
|
|
26
|
-
* Safely converts a JSON string into a JavaScript value without throwing
|
|
27
|
-
*
|
|
28
|
-
* This function provides type-safe JSON parsing by wrapping the native `JSON.parse`
|
|
29
|
-
* in a `Result` type, allowing you to handle parsing errors gracefully without
|
|
30
|
-
* try-catch blocks.
|
|
31
|
-
*
|
|
32
|
-
* @param text - A valid JSON string to parse. Can contain any valid JSON data type:
|
|
33
|
-
* primitives (string, number, boolean, null), arrays, or objects.
|
|
34
|
-
* @param reviver - Optional function that transforms parsed values. Called for each
|
|
35
|
-
* key-value pair in the JSON. The function receives the key name and parsed value,
|
|
36
|
-
* and should return the transformed value. For nested objects, inner objects are
|
|
37
|
-
* processed before outer objects.
|
|
38
|
-
* @returns A `Result<JsonValue, string>` containing:
|
|
39
|
-
* - On success: `Result.ok(parsedValue)` where `parsedValue` is the parsed JSON
|
|
40
|
-
* - On failure: `Result.err(errorMessage)` where `errorMessage` describes the parsing error
|
|
8
|
+
* Safely converts a JSON string into a JavaScript value without throwing
|
|
9
|
+
* exceptions.
|
|
41
10
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* if (Result.isOk(result)) {
|
|
46
|
-
* console.log(result.value.name); // 'John'
|
|
47
|
-
* }
|
|
48
|
-
* ```
|
|
11
|
+
* This function provides type-safe JSON parsing by wrapping the native
|
|
12
|
+
* `JSON.parse` in a `Result` type, allowing you to handle parsing errors
|
|
13
|
+
* gracefully without try-catch blocks.
|
|
49
14
|
*
|
|
50
15
|
* @example
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* const validJson = '{"name": "Alice", "age": 30}';
|
|
19
|
+
* const invalidJson = '{invalid json}';
|
|
20
|
+
*
|
|
21
|
+
* const parsed = Json.parse(validJson);
|
|
22
|
+
* const failed = Json.parse(invalidJson);
|
|
23
|
+
*
|
|
24
|
+
* assert.ok(Result.isOk(parsed));
|
|
25
|
+
* if (Result.isOk(parsed)) {
|
|
26
|
+
* assert.deepStrictEqual(parsed.value, { name: 'Alice', age: 30 });
|
|
55
27
|
* }
|
|
28
|
+
*
|
|
29
|
+
* assert.ok(Result.isErr(failed));
|
|
30
|
+
*
|
|
31
|
+
* // With reviver
|
|
32
|
+
* const jsonWithDate = '{"created": "2024-01-01T00:00:00.000Z"}';
|
|
33
|
+
* const withReviver = Json.parse(jsonWithDate, (key, value) => {
|
|
34
|
+
* if (key === 'created' && typeof value === 'string') {
|
|
35
|
+
* return new Date(value);
|
|
36
|
+
* }
|
|
37
|
+
* return value;
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* assert.ok(Result.isOk(withReviver));
|
|
56
41
|
* ```
|
|
42
|
+
*
|
|
43
|
+
* @param text - A valid JSON string to parse. Can contain any valid JSON data
|
|
44
|
+
* type: primitives (string, number, boolean, null), arrays, or objects.
|
|
45
|
+
* @param reviver - Optional function that transforms parsed values. Called
|
|
46
|
+
* for each key-value pair in the JSON. The function receives the key name
|
|
47
|
+
* and parsed value, and should return the transformed value. For nested
|
|
48
|
+
* objects, inner objects are processed before outer objects.
|
|
49
|
+
* @returns A `Result<JsonValue, string>` containing:
|
|
50
|
+
*
|
|
51
|
+
* - On success: `Result.ok(parsedValue)` where `parsedValue` is the parsed JSON
|
|
52
|
+
* - On failure: `Result.err(errorMessage)` where `errorMessage` describes the
|
|
53
|
+
* parsing error
|
|
57
54
|
*/
|
|
58
55
|
const parse: (text: string, reviver?: (this: unknown, key: string, value: JsonValue) => unknown) => Result<JsonValue, string>;
|
|
59
56
|
/**
|
|
60
|
-
* Safely converts a JavaScript value to a JSON string without throwing
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* accepts: primitives, objects, arrays. Non-serializable values (functions, undefined,
|
|
68
|
-
* symbols) will be omitted or converted to null according to JSON.stringify behavior.
|
|
69
|
-
* @param replacer - Optional function that transforms values during serialization.
|
|
70
|
-
* Called for each key-value pair. Should return the value to be serialized, or
|
|
71
|
-
* undefined to omit the property from the result.
|
|
72
|
-
* @param space - Optional parameter for formatting the output JSON:
|
|
73
|
-
* - Number (1-10): Number of spaces to indent each level
|
|
74
|
-
* - String: String to use for indentation (first 10 characters)
|
|
75
|
-
* - undefined/null: No formatting (compact output)
|
|
76
|
-
* @returns A `Result<string, string>` containing:
|
|
77
|
-
* - On success: `Result.ok(jsonString)` where `jsonString` is the serialized JSON
|
|
78
|
-
* - On failure: `Result.err(errorMessage)` where `errorMessage` describes the error
|
|
57
|
+
* Safely converts a JavaScript value to a JSON string without throwing
|
|
58
|
+
* exceptions.
|
|
59
|
+
*
|
|
60
|
+
* This function provides type-safe JSON stringification by wrapping the
|
|
61
|
+
* native `JSON.stringify` in a `Result` type, allowing you to handle
|
|
62
|
+
* serialization errors gracefully (such as circular references or BigInt
|
|
63
|
+
* values).
|
|
79
64
|
*
|
|
80
65
|
* @example
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* const
|
|
84
|
-
*
|
|
85
|
-
*
|
|
66
|
+
*
|
|
67
|
+
* ```ts
|
|
68
|
+
* const data = { name: 'Bob', age: 25, active: true };
|
|
69
|
+
*
|
|
70
|
+
* // Basic stringify
|
|
71
|
+
* const basic = Json.stringify(data);
|
|
72
|
+
* assert.ok(Result.isOk(basic));
|
|
73
|
+
* if (Result.isOk(basic)) {
|
|
74
|
+
* assert(basic.value === '{"name":"Bob","age":25,"active":true}');
|
|
86
75
|
* }
|
|
87
|
-
* ```
|
|
88
76
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
77
|
+
* // With formatting
|
|
78
|
+
* const formatted = Json.stringify(data, undefined, 2);
|
|
79
|
+
* assert.ok(Result.isOk(formatted));
|
|
80
|
+
*
|
|
81
|
+
* // With replacer
|
|
82
|
+
* const filtered = Json.stringify(data, (key, value) => {
|
|
83
|
+
* if (key === 'age') return undefined; // omit age field
|
|
84
|
+
* return value;
|
|
85
|
+
* });
|
|
86
|
+
*
|
|
87
|
+
* assert.ok(Result.isOk(filtered));
|
|
88
|
+
* if (Result.isOk(filtered)) {
|
|
89
|
+
* assert.ok(!filtered.value.includes('age'));
|
|
96
90
|
* }
|
|
97
91
|
* ```
|
|
98
|
-
*/
|
|
99
|
-
const stringify: (value: unknown, replacer?: (this: unknown, key: string, val: unknown) => unknown, space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
100
|
-
/**
|
|
101
|
-
* Safely converts a JavaScript value to a JSON string, including only the specified properties.
|
|
102
92
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
93
|
+
* @param value - The JavaScript value to serialize. Can be any value that
|
|
94
|
+
* JSON.stringify accepts: primitives, objects, arrays. Non-serializable
|
|
95
|
+
* values (functions, undefined, symbols) will be omitted or converted to
|
|
96
|
+
* null according to JSON.stringify behavior.
|
|
97
|
+
* @param replacer - Optional function that transforms values during
|
|
98
|
+
* serialization. Called for each key-value pair. Should return the value to
|
|
99
|
+
* be serialized, or undefined to omit the property from the result.
|
|
100
|
+
* @param space - Optional parameter for formatting the output JSON:
|
|
106
101
|
*
|
|
107
|
-
* @param value - The JavaScript value to serialize. While any value is accepted,
|
|
108
|
-
* the property filtering only applies to objects and nested objects.
|
|
109
|
-
* @param propertiesToBeSelected - Optional array of property names (strings) and array
|
|
110
|
-
* indices (numbers) to include in the serialization. If provided, only these properties
|
|
111
|
-
* will appear in the output JSON. If undefined, all properties are included.
|
|
112
|
-
* @param space - Optional formatting parameter:
|
|
113
102
|
* - Number (1-10): Number of spaces to indent each level
|
|
114
103
|
* - String: String to use for indentation (first 10 characters)
|
|
115
|
-
* -
|
|
104
|
+
* - Undefined/null: No formatting (compact output)
|
|
105
|
+
*
|
|
116
106
|
* @returns A `Result<string, string>` containing:
|
|
117
|
-
*
|
|
118
|
-
* - On
|
|
107
|
+
*
|
|
108
|
+
* - On success: `Result.ok(jsonString)` where `jsonString` is the serialized
|
|
109
|
+
* JSON
|
|
110
|
+
* - On failure: `Result.err(errorMessage)` where `errorMessage` describes the
|
|
111
|
+
* error
|
|
112
|
+
*/
|
|
113
|
+
const stringify: (value: unknown, replacer?: (this: unknown, key: string, val: unknown) => unknown, space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
114
|
+
/**
|
|
115
|
+
* Safely converts a JavaScript value to a JSON string, including only the
|
|
116
|
+
* specified properties.
|
|
117
|
+
*
|
|
118
|
+
* This function provides selective serialization by allowing you to specify
|
|
119
|
+
* exactly which object properties should be included in the resulting JSON.
|
|
120
|
+
* It's useful for creating filtered or minimal representations of objects,
|
|
121
|
+
* such as for API responses or logging.
|
|
119
122
|
*
|
|
120
123
|
* @example
|
|
121
|
-
*
|
|
124
|
+
*
|
|
125
|
+
* ```ts
|
|
122
126
|
* const user = {
|
|
123
127
|
* id: 1,
|
|
124
|
-
* name: '
|
|
125
|
-
* email: '
|
|
126
|
-
* password: 'secret123'
|
|
128
|
+
* name: 'Charlie',
|
|
129
|
+
* email: 'charlie@example.com',
|
|
130
|
+
* password: 'secret123',
|
|
131
|
+
* role: 'admin',
|
|
127
132
|
* };
|
|
128
133
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
134
|
+
* // Select only safe properties to serialize
|
|
135
|
+
* const safeJson = Json.stringifySelected(user, ['id', 'name', 'role']);
|
|
136
|
+
*
|
|
137
|
+
* assert.ok(Result.isOk(safeJson));
|
|
138
|
+
* if (Result.isOk(safeJson)) {
|
|
139
|
+
* const parsed: unknown = JSON.parse(safeJson.value);
|
|
140
|
+
* assert.deepStrictEqual(parsed, {
|
|
141
|
+
* id: 1,
|
|
142
|
+
* name: 'Charlie',
|
|
143
|
+
* role: 'admin',
|
|
144
|
+
* });
|
|
145
|
+
* assert.ok(!safeJson.value.includes('password'));
|
|
146
|
+
* assert.ok(!safeJson.value.includes('email'));
|
|
133
147
|
* }
|
|
134
|
-
* ```
|
|
135
|
-
*/
|
|
136
|
-
const stringifySelected: (value: unknown, propertiesToBeSelected?: readonly (number | string)[], space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
137
|
-
/**
|
|
138
|
-
* Safely converts a JavaScript record to a JSON string with keys sorted alphabetically at all levels.
|
|
139
148
|
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
149
|
+
* // With formatting
|
|
150
|
+
* const formatted = Json.stringifySelected(user, ['id', 'name'], 2);
|
|
151
|
+
* assert.ok(Result.isOk(formatted));
|
|
152
|
+
* ```
|
|
144
153
|
*
|
|
145
|
-
* @param value -
|
|
146
|
-
*
|
|
147
|
-
*
|
|
154
|
+
* @param value - The JavaScript value to serialize. While any value is
|
|
155
|
+
* accepted, the property filtering only applies to objects and nested
|
|
156
|
+
* objects.
|
|
157
|
+
* @param propertiesToBeSelected - Optional array of property names (strings)
|
|
158
|
+
* and array indices (numbers) to include in the serialization. If provided,
|
|
159
|
+
* only these properties will appear in the output JSON. If undefined, all
|
|
160
|
+
* properties are included.
|
|
148
161
|
* @param space - Optional formatting parameter:
|
|
162
|
+
*
|
|
149
163
|
* - Number (1-10): Number of spaces to indent each level
|
|
150
164
|
* - String: String to use for indentation (first 10 characters)
|
|
151
|
-
* -
|
|
165
|
+
* - Undefined/null: No formatting (compact output)
|
|
166
|
+
*
|
|
152
167
|
* @returns A `Result<string, string>` containing:
|
|
153
|
-
*
|
|
168
|
+
*
|
|
169
|
+
* - On success: `Result.ok(jsonString)` with only selected properties
|
|
154
170
|
* - On failure: `Result.err(errorMessage)` describing the serialization error
|
|
171
|
+
*/
|
|
172
|
+
const stringifySelected: (value: unknown, propertiesToBeSelected?: readonly (number | string)[], space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
173
|
+
/**
|
|
174
|
+
* Safely converts a JavaScript record to a JSON string with keys sorted
|
|
175
|
+
* alphabetically at all levels.
|
|
176
|
+
*
|
|
177
|
+
* This function creates deterministic JSON output by ensuring that object
|
|
178
|
+
* keys appear in alphabetical order at every level of nesting. This is
|
|
179
|
+
* particularly useful for creating consistent output for comparison, hashing,
|
|
180
|
+
* caching, or when you need reproducible JSON representations across
|
|
181
|
+
* different JavaScript engines or runs.
|
|
155
182
|
*
|
|
156
183
|
* @example
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
184
|
+
*
|
|
185
|
+
* ```ts
|
|
186
|
+
* const unorderedData = {
|
|
187
|
+
* zebra: 1,
|
|
188
|
+
* apple: 2,
|
|
189
|
+
* mango: 3,
|
|
190
|
+
* nested: {
|
|
191
|
+
* zulu: 'z',
|
|
192
|
+
* alpha: 'a',
|
|
193
|
+
* beta: 'b',
|
|
194
|
+
* },
|
|
162
195
|
* };
|
|
163
196
|
*
|
|
164
|
-
*
|
|
197
|
+
* // Keys will be sorted alphabetically at all levels
|
|
198
|
+
* const sorted = Json.stringifySortedKey(unorderedData);
|
|
199
|
+
*
|
|
200
|
+
* assert.ok(Result.isOk(sorted));
|
|
165
201
|
* if (Result.isOk(sorted)) {
|
|
166
|
-
*
|
|
167
|
-
*
|
|
202
|
+
* // Keys should appear in alphabetical order
|
|
203
|
+
* const expected =
|
|
204
|
+
* '{"apple":2,"mango":3,"nested":{"alpha":"a","beta":"b","zulu":"z"},"zebra":1}';
|
|
205
|
+
* assert(sorted.value === expected);
|
|
206
|
+
* }
|
|
207
|
+
*
|
|
208
|
+
* // With formatting
|
|
209
|
+
* const formatted = Json.stringifySortedKey(unorderedData, 2);
|
|
210
|
+
* assert.ok(Result.isOk(formatted));
|
|
211
|
+
* if (Result.isOk(formatted)) {
|
|
212
|
+
* // Check that keys are in order (first key should be "apple")
|
|
213
|
+
* assert.ok(
|
|
214
|
+
* formatted.value.indexOf('"apple"') < formatted.value.indexOf('"mango"'),
|
|
215
|
+
* );
|
|
216
|
+
* assert.ok(
|
|
217
|
+
* formatted.value.indexOf('"mango"') < formatted.value.indexOf('"nested"'),
|
|
218
|
+
* );
|
|
219
|
+
* assert.ok(
|
|
220
|
+
* formatted.value.indexOf('"nested"') < formatted.value.indexOf('"zebra"'),
|
|
221
|
+
* );
|
|
168
222
|
* }
|
|
169
223
|
* ```
|
|
224
|
+
*
|
|
225
|
+
* @param value - An object (`UnknownRecord`) to serialize. Must be a plain
|
|
226
|
+
* object (not an array, primitive, or null). Nested objects and arrays
|
|
227
|
+
* within the object will also have their keys sorted alphabetically.
|
|
228
|
+
* @param space - Optional formatting parameter:
|
|
229
|
+
*
|
|
230
|
+
* - Number (1-10): Number of spaces to indent each level
|
|
231
|
+
* - String: String to use for indentation (first 10 characters)
|
|
232
|
+
* - Undefined/null: No formatting (compact output)
|
|
233
|
+
*
|
|
234
|
+
* @returns A `Result<string, string>` containing:
|
|
235
|
+
*
|
|
236
|
+
* - On success: `Result.ok(jsonString)` with all object keys sorted
|
|
237
|
+
* alphabetically
|
|
238
|
+
* - On failure: `Result.err(errorMessage)` describing the serialization error
|
|
170
239
|
*/
|
|
171
240
|
const stringifySortedKey: (value: UnknownRecord, space?: UintRangeInclusive<1, 10> | string) => Result<string, string>;
|
|
172
241
|
}
|
package/dist/json/json.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../../src/json/json.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../../src/json/json.mts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACI,MAAM,KAAK,GAChB,MAAM,MAAM,EACZ,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,KAClE,MAAM,CAAC,SAAS,EAAE,MAAM,CAa1B,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACI,MAAM,SAAS,GACpB,OAAO,OAAO,EACd,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,EAChE,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAOvB,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACI,MAAM,iBAAiB,GAC5B,OAAO,OAAO,EACd,yBAAyB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACrD,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CASvB,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACI,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,QAAQ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAMvB,CAAC;CACH"}
|