ts-data-forge 8.0.0 → 9.0.1
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-creation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-creation.mjs +17 -112
- package/dist/array/impl/array-utils-creation.mjs.map +1 -1
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
- package/dist/array/impl/array-utils-element-access.mjs +22 -61
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
- package/dist/array/impl/array-utils-iterators.d.mts.map +1 -1
- package/dist/array/impl/array-utils-iterators.mjs +9 -63
- package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
- package/dist/array/impl/array-utils-modification.mjs +78 -78
- package/dist/array/impl/array-utils-modification.mjs.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.mjs +95 -89
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-search.mjs +100 -92
- package/dist/array/impl/array-utils-search.mjs.map +1 -1
- package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
- package/dist/array/impl/array-utils-set-op.mjs +31 -141
- package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
- package/dist/array/impl/array-utils-size.d.mts.map +1 -1
- package/dist/array/impl/array-utils-size.mjs +4 -8
- package/dist/array/impl/array-utils-size.mjs.map +1 -1
- package/dist/array/impl/array-utils-slice-clamped.mjs +11 -12
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
- package/dist/array/impl/array-utils-slicing.mjs +44 -96
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
- package/dist/array/impl/array-utils-transformation.d.mts +1 -1
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs +150 -292
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-validation.mjs +18 -169
- package/dist/array/impl/array-utils-validation.mjs.map +1 -1
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +243 -330
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +190 -275
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.d.mts +1 -1
- package/dist/collections/iset-mapped.d.mts.map +1 -1
- package/dist/collections/iset-mapped.mjs +222 -444
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.d.mts +1 -1
- package/dist/collections/iset.d.mts.map +1 -1
- package/dist/collections/iset.mjs +158 -324
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/queue.mjs +106 -178
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/collections/stack.mjs +95 -165
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.mjs +1 -0
- package/dist/entry-point.mjs.map +1 -1
- package/dist/expect-type.d.mts +1 -1
- package/dist/expect-type.d.mts.map +1 -1
- package/dist/expect-type.mjs +1 -69
- package/dist/expect-type.mjs.map +1 -1
- package/dist/functional/match.mjs +9 -9
- package/dist/functional/match.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-expect-to-be.mjs +13 -14
- package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-filter.mjs +14 -15
- package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-flat-map.mjs +10 -11
- package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-from-nullable.mjs +1 -25
- package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-is-none.mjs +0 -19
- package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-is-optional.mjs +1 -23
- package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-is-some.mjs +0 -20
- package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-map.mjs +13 -14
- package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-none.mjs +0 -16
- package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-or-else.mjs +10 -11
- package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-some.mjs +2 -21
- package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-to-nullable.mjs +1 -27
- package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-unwrap-or.mjs +9 -10
- package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs +4 -32
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-unwrap.mjs +4 -4
- package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
- package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
- package/dist/functional/optional/impl/optional-zip.mjs +1 -35
- package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
- package/dist/functional/optional/impl/tag.mjs +2 -3
- package/dist/functional/optional/impl/tag.mjs.map +1 -1
- package/dist/functional/pipe.d.mts.map +1 -1
- package/dist/functional/pipe.mjs +9 -34
- package/dist/functional/pipe.mjs.map +1 -1
- package/dist/functional/result/impl/result-err.d.mts.map +1 -1
- package/dist/functional/result/impl/result-err.mjs +2 -27
- package/dist/functional/result/impl/result-err.mjs.map +1 -1
- package/dist/functional/result/impl/result-expect-to-be.mjs +13 -15
- package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
- package/dist/functional/result/impl/result-flat-map.mjs +16 -16
- package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
- package/dist/functional/result/impl/result-fold.mjs +16 -16
- package/dist/functional/result/impl/result-fold.mjs.map +1 -1
- package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
- package/dist/functional/result/impl/result-from-promise.mjs +4 -31
- package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
- package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
- package/dist/functional/result/impl/result-from-throwable.mjs +8 -38
- package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
- package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
- package/dist/functional/result/impl/result-is-err.mjs +0 -19
- package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
- package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
- package/dist/functional/result/impl/result-is-ok.mjs +0 -19
- package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
- package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
- package/dist/functional/result/impl/result-is-result.mjs +1 -23
- package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
- package/dist/functional/result/impl/result-map-err.mjs +16 -16
- package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
- package/dist/functional/result/impl/result-map.mjs +16 -16
- package/dist/functional/result/impl/result-map.mjs.map +1 -1
- package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
- package/dist/functional/result/impl/result-ok.mjs +2 -27
- package/dist/functional/result/impl/result-ok.mjs.map +1 -1
- package/dist/functional/result/impl/result-or-else.mjs +10 -12
- package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
- package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
- package/dist/functional/result/impl/result-swap.mjs +4 -22
- package/dist/functional/result/impl/result-swap.mjs.map +1 -1
- package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
- package/dist/functional/result/impl/result-to-optional.mjs +0 -27
- package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
- package/dist/functional/result/impl/result-unwrap-err-or.mjs +9 -11
- package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs +13 -40
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
- package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
- package/dist/functional/result/impl/result-unwrap-err.mjs +4 -32
- package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs +9 -11
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
- package/dist/functional/result/impl/result-unwrap-ok.mjs +4 -4
- package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
- package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
- package/dist/functional/result/impl/result-unwrap-throw.mjs +4 -35
- package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
- package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
- package/dist/functional/result/impl/result-zip.mjs +1 -34
- package/dist/functional/result/impl/result-zip.mjs.map +1 -1
- package/dist/functional/result/impl/tag.mjs +2 -3
- package/dist/functional/result/impl/tag.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/tag.mjs +3 -5
- package/dist/functional/ternary-result/impl/tag.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-err.mjs +2 -15
- package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +13 -13
- package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +27 -26
- package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +21 -22
- package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +4 -20
- package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +7 -25
- package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-err.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +0 -17
- package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +0 -19
- package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +1 -25
- package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +0 -18
- package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +13 -15
- package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +18 -18
- package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-map.mjs +21 -22
- package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +2 -16
- package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +9 -9
- package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +4 -22
- package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +9 -9
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +12 -27
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +4 -19
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +9 -9
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +4 -5
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +15 -27
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +9 -9
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +10 -24
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +4 -19
- package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +3 -19
- package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +14 -45
- package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/variant-name.d.mts +1 -1
- package/dist/functional/ternary-result/impl/variant-name.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/variant-name.mjs +8 -9
- package/dist/functional/ternary-result/impl/variant-name.mjs.map +1 -1
- package/dist/functional/ternary-result/ternary-result.d.mts.map +1 -1
- package/dist/guard/has-key.d.mts.map +1 -1
- package/dist/guard/has-key.mjs +0 -41
- package/dist/guard/has-key.mjs.map +1 -1
- package/dist/guard/index.d.mts +1 -0
- package/dist/guard/index.d.mts.map +1 -1
- package/dist/guard/index.mjs +1 -0
- package/dist/guard/index.mjs.map +1 -1
- package/dist/guard/is-length-bounded-string.d.mts +164 -0
- package/dist/guard/is-length-bounded-string.d.mts.map +1 -0
- package/dist/guard/is-length-bounded-string.mjs +7 -0
- package/dist/guard/is-length-bounded-string.mjs.map +1 -0
- package/dist/guard/is-non-empty-string.d.mts +1 -1
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/guard/is-non-empty-string.mjs +1 -38
- package/dist/guard/is-non-empty-string.mjs.map +1 -1
- package/dist/guard/is-non-null-object.d.mts.map +1 -1
- package/dist/guard/is-non-null-object.mjs +1 -35
- package/dist/guard/is-non-null-object.mjs.map +1 -1
- package/dist/guard/is-primitive.d.mts.map +1 -1
- package/dist/guard/is-primitive.mjs +12 -43
- package/dist/guard/is-primitive.mjs.map +1 -1
- package/dist/guard/is-record.d.mts.map +1 -1
- package/dist/guard/is-record.mjs +0 -86
- package/dist/guard/is-record.mjs.map +1 -1
- package/dist/guard/is-type.d.mts.map +1 -1
- package/dist/guard/is-type.mjs +12 -399
- package/dist/guard/is-type.mjs.map +1 -1
- package/dist/guard/key-is-in.d.mts.map +1 -1
- package/dist/guard/key-is-in.mjs +0 -40
- package/dist/guard/key-is-in.mjs.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.mjs +16 -16
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +52 -340
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +3 -3
- package/dist/number/branded-types/finite-number.mjs +135 -154
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +4 -4
- package/dist/number/branded-types/int.mjs +205 -245
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +15 -15
- package/dist/number/branded-types/int16.mjs +116 -123
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +11 -11
- package/dist/number/branded-types/int32.mjs +116 -123
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +4 -4
- package/dist/number/branded-types/negative-finite-number.mjs +129 -144
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +5 -5
- package/dist/number/branded-types/negative-int.mjs +94 -113
- package/dist/number/branded-types/negative-int.mjs.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +5 -5
- package/dist/number/branded-types/negative-safe-int.mjs +103 -124
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +5 -5
- package/dist/number/branded-types/non-negative-finite-number.mjs +136 -142
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +16 -16
- package/dist/number/branded-types/non-negative-int16.mjs +109 -118
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +12 -12
- package/dist/number/branded-types/non-negative-int32.mjs +110 -119
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +3 -3
- package/dist/number/branded-types/non-positive-finite-number.mjs +120 -124
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +4 -4
- package/dist/number/branded-types/non-positive-int.mjs +167 -212
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +4 -4
- package/dist/number/branded-types/non-positive-safe-int.mjs +95 -106
- package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +4 -4
- package/dist/number/branded-types/non-zero-finite-number.mjs +114 -123
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +2 -2
- package/dist/number/branded-types/non-zero-int.mjs +72 -83
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +7 -7
- package/dist/number/branded-types/non-zero-int16.mjs +96 -107
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +5 -5
- package/dist/number/branded-types/non-zero-int32.mjs +97 -108
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +2 -2
- package/dist/number/branded-types/non-zero-safe-int.mjs +100 -111
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +8 -8
- package/dist/number/branded-types/non-zero-uint16.mjs +96 -107
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +6 -6
- package/dist/number/branded-types/non-zero-uint32.mjs +96 -107
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +8 -8
- package/dist/number/branded-types/positive-finite-number.mjs +139 -141
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +11 -11
- package/dist/number/branded-types/positive-int.mjs +228 -271
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +19 -19
- package/dist/number/branded-types/positive-int16.mjs +109 -118
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +15 -15
- package/dist/number/branded-types/positive-int32.mjs +109 -118
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +11 -11
- package/dist/number/branded-types/positive-safe-int.mjs +244 -275
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +17 -17
- package/dist/number/branded-types/positive-uint16.mjs +109 -118
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +13 -13
- package/dist/number/branded-types/positive-uint32.mjs +110 -119
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +4 -4
- package/dist/number/branded-types/safe-int.mjs +251 -292
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +8 -8
- package/dist/number/branded-types/safe-uint.mjs +111 -119
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +8 -8
- package/dist/number/branded-types/uint.mjs +198 -225
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +14 -14
- package/dist/number/branded-types/uint16.mjs +109 -119
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +10 -10
- package/dist/number/branded-types/uint32.mjs +110 -117
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.mjs +119 -145
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.mjs +107 -121
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/num.d.mts +2 -2
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/num.mjs +76 -537
- package/dist/number/num.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +1 -1
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +127 -263
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +107 -222
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/cast-mutable.d.mts.map +1 -1
- package/dist/others/cast-mutable.mjs +8 -37
- package/dist/others/cast-mutable.mjs.map +1 -1
- package/dist/others/cast-readonly.d.mts.map +1 -1
- package/dist/others/cast-readonly.mjs +8 -36
- package/dist/others/cast-readonly.mjs.map +1 -1
- package/dist/others/debounce-function.d.mts.map +1 -1
- package/dist/others/debounce-function.mjs +7 -16
- package/dist/others/debounce-function.mjs.map +1 -1
- package/dist/others/fast-deep-equal.d.mts.map +1 -1
- package/dist/others/fast-deep-equal.mjs +43 -59
- package/dist/others/fast-deep-equal.mjs.map +1 -1
- package/dist/others/if-then.d.mts.map +1 -1
- package/dist/others/if-then.mjs +0 -29
- package/dist/others/if-then.mjs.map +1 -1
- package/dist/others/map-nullable.mjs +9 -9
- package/dist/others/map-nullable.mjs.map +1 -1
- package/dist/others/memoize-function.mjs +12 -12
- package/dist/others/memoize-function.mjs.map +1 -1
- package/dist/others/tuple.d.mts.map +1 -1
- package/dist/others/tuple.mjs +0 -50
- package/dist/others/tuple.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +41 -88
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/dist/promise/promise.d.mts.map +1 -1
- package/dist/promise/promise.mjs +4 -49
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +17 -16
- package/src/array/impl/array-utils-transformation.mts +1 -2
- package/src/array/impl/array-utils-transformation.test.mts +3 -36
- package/src/array/impl/array-utils-validation.test.mts +1 -3
- package/src/expect-type.mts +4 -5
- package/src/functional/ternary-result/ternary-result.mts +2 -6
- package/src/guard/index.mts +1 -0
- package/src/guard/is-length-bounded-string.mts +199 -0
- package/src/guard/is-length-bounded-string.test.mts +170 -0
- package/src/number/refined-number-utils.mts +1 -9
- package/src/object/object.mts +25 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-type.d.mts","sourceRoot":"","sources":["../../src/guard/is-type.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"is-type.d.mts","sourceRoot":"","sources":["../../src/guard/is-type.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,MAAO,OAAO,KAAG,CAAC,IAAI,SAA4B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,KAAM,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,SAAS,CACzD,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,MAAO,OAAO,KAAG,CAAC,IAAI,OAAiC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,KAAM,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,OAAO,CAC9C,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,MAAO,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,KAAM,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,MAAO,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,KAAM,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,MAAO,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,KAAM,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,QAAQ,MAAO,OAAO,KAAG,CAAC,IAAI,MAA+B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,KAAM,CAAC,KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,CAC7C,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,MAAM,MAAO,OAAO,KAAG,CAAC,IAAI,IAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,KAAM,CAAC,GAAG,IAAI,KAAG,CAAC,IAAI,CAAe,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,SAAS,MAAO,OAAO,KAAG,CAAC,IAAI,IAAI,GAAG,SAAsB,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,KAAM,CAAC,KAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAc,CAAC"}
|
package/dist/guard/is-type.mjs
CHANGED
|
@@ -1,405 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* const undefinedValues = values.filter(isUndefined);
|
|
15
|
-
*
|
|
16
|
-
* assert.deepStrictEqual(undefinedValues, [undefined]);
|
|
17
|
-
* ```
|
|
18
|
-
*
|
|
19
|
-
* @param u - The value to check
|
|
20
|
-
* @returns `true` if `u` is `undefined`, `false` otherwise. When `true`,
|
|
21
|
-
* TypeScript narrows the type to `undefined`.
|
|
22
|
-
*/
|
|
23
|
-
const isUndefined = (u) => u === undefined;
|
|
24
|
-
/**
|
|
25
|
-
* Type guard that checks if a value is not `undefined`.
|
|
26
|
-
*
|
|
27
|
-
* **Type Narrowing Behavior:**
|
|
28
|
-
*
|
|
29
|
-
* - Excludes `undefined` from the input type when `true`
|
|
30
|
-
* - Preserves all other types in the union
|
|
31
|
-
* - Commonly used to filter out undefined values
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
*
|
|
35
|
-
* ```ts
|
|
36
|
-
* const values: readonly (number | undefined)[] = [1, undefined, 2] as const;
|
|
37
|
-
*
|
|
38
|
-
* const definedValues = values.filter(isNotUndefined);
|
|
39
|
-
*
|
|
40
|
-
* assert.deepStrictEqual(definedValues, [1, 2]);
|
|
41
|
-
* ```
|
|
42
|
-
*
|
|
43
|
-
* @template T - The type of the input value
|
|
44
|
-
* @param u - The value to check
|
|
45
|
-
* @returns `true` if `u` is not `undefined`, `false` otherwise. When `true`,
|
|
46
|
-
* TypeScript excludes `undefined` from the type.
|
|
47
|
-
*/
|
|
48
|
-
const isNotUndefined = (u) => u !== undefined;
|
|
49
|
-
/**
|
|
50
|
-
* Type guard that checks if a value is a boolean.
|
|
51
|
-
*
|
|
52
|
-
* **Type Narrowing Behavior:**
|
|
53
|
-
*
|
|
54
|
-
* - Narrows `unknown` to `boolean` when `true`
|
|
55
|
-
* - Preserves literal boolean types (`true | false`)
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
*
|
|
59
|
-
* ```ts
|
|
60
|
-
* const flags: readonly unknown[] = [true, 'no', false] as const;
|
|
61
|
-
*
|
|
62
|
-
* const booleans = flags.filter(isBoolean);
|
|
63
|
-
*
|
|
64
|
-
* assert.deepStrictEqual(booleans, [true, false]);
|
|
65
|
-
* ```
|
|
66
|
-
*
|
|
67
|
-
* @param u - The value to check
|
|
68
|
-
* @returns `true` if `u` is a boolean, `false` otherwise. When `true`,
|
|
69
|
-
* TypeScript narrows the type to `boolean`.
|
|
70
|
-
*/
|
|
71
|
-
const isBoolean = (u) => typeof u === 'boolean';
|
|
72
|
-
/**
|
|
73
|
-
* Type guard that checks if a value is not a boolean.
|
|
74
|
-
*
|
|
75
|
-
* **Type Narrowing Behavior:**
|
|
76
|
-
*
|
|
77
|
-
* - Excludes `boolean` from the input type when `true`
|
|
78
|
-
* - Preserves all other types in the union
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
*
|
|
82
|
-
* ```ts
|
|
83
|
-
* const flags: readonly unknown[] = [true, 'no', false] as const;
|
|
84
|
-
*
|
|
85
|
-
* const nonBooleans = flags.filter(isNotBoolean);
|
|
86
|
-
*
|
|
87
|
-
* assert.deepStrictEqual(nonBooleans, ['no']);
|
|
88
|
-
* ```
|
|
89
|
-
*
|
|
90
|
-
* @template T - The type of the input value
|
|
91
|
-
* @param u - The value to check
|
|
92
|
-
* @returns `true` if `u` is not a boolean, `false` otherwise. When `true`,
|
|
93
|
-
* TypeScript excludes `boolean` from the type.
|
|
94
|
-
*/
|
|
95
|
-
const isNotBoolean = (u) => typeof u !== 'boolean';
|
|
96
|
-
/**
|
|
97
|
-
* Type guard that checks if a value is a number.
|
|
98
|
-
*
|
|
99
|
-
* **Type Narrowing Behavior:**
|
|
100
|
-
*
|
|
101
|
-
* - Narrows `unknown` to `number` when `true`
|
|
102
|
-
* - Includes `NaN`, `Infinity`, and `-Infinity` as valid numbers
|
|
103
|
-
* - Preserves literal number types when possible
|
|
104
|
-
*
|
|
105
|
-
* @example
|
|
106
|
-
*
|
|
107
|
-
* ```ts
|
|
108
|
-
* const mixed: readonly unknown[] = [1, '2', 3] as const;
|
|
109
|
-
*
|
|
110
|
-
* const numbers = mixed.filter(isNumber);
|
|
111
|
-
*
|
|
112
|
-
* assert.deepStrictEqual(numbers, [1, 3]);
|
|
113
|
-
* ```
|
|
114
|
-
*
|
|
115
|
-
* @param u - The value to check
|
|
116
|
-
* @returns `true` if `u` is a number, `false` otherwise. When `true`,
|
|
117
|
-
* TypeScript narrows the type to `number`.
|
|
118
|
-
*/
|
|
119
|
-
const isNumber = (u) => typeof u === 'number';
|
|
120
|
-
/**
|
|
121
|
-
* Type guard that checks if a value is not a number.
|
|
122
|
-
*
|
|
123
|
-
* **Type Narrowing Behavior:**
|
|
124
|
-
*
|
|
125
|
-
* - Excludes `number` from the input type when `true`
|
|
126
|
-
* - Preserves all other types in the union
|
|
127
|
-
*
|
|
128
|
-
* @example
|
|
129
|
-
*
|
|
130
|
-
* ```ts
|
|
131
|
-
* const mixed: readonly unknown[] = [1, '2', 3] as const;
|
|
132
|
-
*
|
|
133
|
-
* const nonNumbers = mixed.filter(isNotNumber);
|
|
134
|
-
*
|
|
135
|
-
* assert.deepStrictEqual(nonNumbers, ['2']);
|
|
136
|
-
* ```
|
|
137
|
-
*
|
|
138
|
-
* @template T - The type of the input value
|
|
139
|
-
* @param u - The value to check
|
|
140
|
-
* @returns `true` if `u` is not a number, `false` otherwise. When `true`,
|
|
141
|
-
* TypeScript excludes `number` from the type.
|
|
142
|
-
*/
|
|
143
|
-
const isNotNumber = (u) => typeof u !== 'number';
|
|
144
|
-
/**
|
|
145
|
-
* Type guard that checks if a value is a bigint.
|
|
146
|
-
*
|
|
147
|
-
* **Type Narrowing Behavior:**
|
|
148
|
-
*
|
|
149
|
-
* - Narrows `unknown` to `bigint` when `true`
|
|
150
|
-
* - Identifies values created with `BigInt()` constructor or `n` suffix
|
|
151
|
-
*
|
|
152
|
-
* @example
|
|
153
|
-
*
|
|
154
|
-
* ```ts
|
|
155
|
-
* const values: readonly unknown[] = [1n, 2, 3n] as const;
|
|
156
|
-
*
|
|
157
|
-
* const bigints = values.filter(isBigint);
|
|
158
|
-
*
|
|
159
|
-
* assert.deepStrictEqual(bigints, [1n, 3n]);
|
|
160
|
-
* ```
|
|
161
|
-
*
|
|
162
|
-
* @param u - The value to check
|
|
163
|
-
* @returns `true` if `u` is a bigint, `false` otherwise. When `true`,
|
|
164
|
-
* TypeScript narrows the type to `bigint`.
|
|
165
|
-
*/
|
|
166
|
-
const isBigint = (u) => typeof u === 'bigint';
|
|
167
|
-
/**
|
|
168
|
-
* Type guard that checks if a value is not a bigint.
|
|
169
|
-
*
|
|
170
|
-
* **Type Narrowing Behavior:**
|
|
171
|
-
*
|
|
172
|
-
* - Excludes `bigint` from the input type when `true`
|
|
173
|
-
* - Preserves all other types in the union
|
|
174
|
-
*
|
|
175
|
-
* @example
|
|
176
|
-
*
|
|
177
|
-
* ```ts
|
|
178
|
-
* const values: readonly unknown[] = [1n, 2, 3n] as const;
|
|
179
|
-
*
|
|
180
|
-
* const nonBigints = values.filter(isNotBigint);
|
|
181
|
-
*
|
|
182
|
-
* assert.deepStrictEqual(nonBigints, [2]);
|
|
183
|
-
* ```
|
|
184
|
-
*
|
|
185
|
-
* @template T - The type of the input value
|
|
186
|
-
* @param u - The value to check
|
|
187
|
-
* @returns `true` if `u` is not a bigint, `false` otherwise. When `true`,
|
|
188
|
-
* TypeScript excludes `bigint` from the type.
|
|
189
|
-
*/
|
|
190
|
-
const isNotBigint = (u) => typeof u !== 'bigint';
|
|
191
|
-
/**
|
|
192
|
-
* Type guard that checks if a value is a string.
|
|
193
|
-
*
|
|
194
|
-
* **Type Narrowing Behavior:**
|
|
195
|
-
*
|
|
196
|
-
* - Narrows `unknown` to `string` when `true`
|
|
197
|
-
* - Preserves literal string types when possible
|
|
198
|
-
* - Includes empty strings
|
|
199
|
-
*
|
|
200
|
-
* @example
|
|
201
|
-
*
|
|
202
|
-
* ```ts
|
|
203
|
-
* const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;
|
|
204
|
-
*
|
|
205
|
-
* const strings = values.filter(isString);
|
|
206
|
-
*
|
|
207
|
-
* assert.deepStrictEqual(strings, ['Ada', 'Lovelace']);
|
|
208
|
-
* ```
|
|
209
|
-
*
|
|
210
|
-
* @param u - The value to check
|
|
211
|
-
* @returns `true` if `u` is a string, `false` otherwise. When `true`,
|
|
212
|
-
* TypeScript narrows the type to `string`.
|
|
213
|
-
*/
|
|
214
|
-
const isString = (u) => typeof u === 'string';
|
|
215
|
-
/**
|
|
216
|
-
* Type guard that checks if a value is not a string.
|
|
217
|
-
*
|
|
218
|
-
* **Type Narrowing Behavior:**
|
|
219
|
-
*
|
|
220
|
-
* - Excludes `string` from the input type when `true`
|
|
221
|
-
* - Preserves all other types in the union
|
|
222
|
-
*
|
|
223
|
-
* @example
|
|
224
|
-
*
|
|
225
|
-
* ```ts
|
|
226
|
-
* const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;
|
|
227
|
-
*
|
|
228
|
-
* const nonStrings = values.filter(isNotString);
|
|
229
|
-
*
|
|
230
|
-
* assert.deepStrictEqual(nonStrings, [42]);
|
|
231
|
-
* ```
|
|
232
|
-
*
|
|
233
|
-
* @template T - The type of the input value
|
|
234
|
-
* @param u - The value to check
|
|
235
|
-
* @returns `true` if `u` is not a string, `false` otherwise. When `true`,
|
|
236
|
-
* TypeScript excludes `string` from the type.
|
|
237
|
-
*/
|
|
238
|
-
const isNotString = (u) => typeof u !== 'string';
|
|
239
|
-
/**
|
|
240
|
-
* Type guard that checks if a value is a symbol.
|
|
241
|
-
*
|
|
242
|
-
* **Type Narrowing Behavior:**
|
|
243
|
-
*
|
|
244
|
-
* - Narrows `unknown` to `symbol` when `true`
|
|
245
|
-
* - Identifies values created with `Symbol()` constructor
|
|
246
|
-
*
|
|
247
|
-
* @example
|
|
248
|
-
*
|
|
249
|
-
* ```ts
|
|
250
|
-
* const id = Symbol('id');
|
|
251
|
-
*
|
|
252
|
-
* const shared = Symbol.for('shared');
|
|
253
|
-
*
|
|
254
|
-
* const tokens: readonly unknown[] = [id, 'shared', shared] as const;
|
|
255
|
-
*
|
|
256
|
-
* const symbols = tokens.filter(isSymbol);
|
|
257
|
-
*
|
|
258
|
-
* assert.deepStrictEqual(symbols, [id, shared]);
|
|
259
|
-
* ```
|
|
260
|
-
*
|
|
261
|
-
* @param u - The value to check
|
|
262
|
-
* @returns `true` if `u` is a symbol, `false` otherwise. When `true`,
|
|
263
|
-
* TypeScript narrows the type to `symbol`.
|
|
264
|
-
*/
|
|
265
|
-
const isSymbol = (u) => typeof u === 'symbol';
|
|
266
|
-
/**
|
|
267
|
-
* Type guard that checks if a value is not a symbol.
|
|
268
|
-
*
|
|
269
|
-
* **Type Narrowing Behavior:**
|
|
270
|
-
*
|
|
271
|
-
* - Excludes `symbol` from the input type when `true`
|
|
272
|
-
* - Preserves all other types in the union
|
|
273
|
-
*
|
|
274
|
-
* @example
|
|
275
|
-
*
|
|
276
|
-
* ```ts
|
|
277
|
-
* const id = Symbol('id');
|
|
278
|
-
*
|
|
279
|
-
* const tokens: readonly unknown[] = [id, 'shared'] as const;
|
|
280
|
-
*
|
|
281
|
-
* const nonSymbols = tokens.filter(isNotSymbol);
|
|
282
|
-
*
|
|
283
|
-
* assert.deepStrictEqual(nonSymbols, ['shared']);
|
|
284
|
-
* ```
|
|
285
|
-
*
|
|
286
|
-
* @template T - The type of the input value
|
|
287
|
-
* @param u - The value to check
|
|
288
|
-
* @returns `true` if `u` is not a symbol, `false` otherwise. When `true`,
|
|
289
|
-
* TypeScript excludes `symbol` from the type.
|
|
290
|
-
*/
|
|
291
|
-
const isNotSymbol = (u) => typeof u !== 'symbol';
|
|
292
|
-
/**
|
|
293
|
-
* Type guard that checks if a value is `null`.
|
|
294
|
-
*
|
|
295
|
-
* **Type Narrowing Behavior:**
|
|
296
|
-
*
|
|
297
|
-
* - Narrows the input type to `null` when `true`
|
|
298
|
-
* - Useful for explicit null checks
|
|
299
|
-
*
|
|
300
|
-
* @example
|
|
301
|
-
*
|
|
302
|
-
* ```ts
|
|
303
|
-
* const values: readonly (number | null)[] = [null, 5] as const;
|
|
304
|
-
*
|
|
305
|
-
* const nullValues = values.filter(isNull);
|
|
306
|
-
*
|
|
307
|
-
* assert.deepStrictEqual(nullValues, [null]);
|
|
308
|
-
* ```
|
|
309
|
-
*
|
|
310
|
-
* @param u - The value to check
|
|
311
|
-
* @returns `true` if `u` is `null`, `false` otherwise. When `true`, TypeScript
|
|
312
|
-
* narrows the type to `null`.
|
|
313
|
-
*/
|
|
1
|
+
const isUndefined = (u) => u === void 0;
|
|
2
|
+
const isNotUndefined = (u) => u !== void 0;
|
|
3
|
+
const isBoolean = (u) => typeof u === "boolean";
|
|
4
|
+
const isNotBoolean = (u) => typeof u !== "boolean";
|
|
5
|
+
const isNumber = (u) => typeof u === "number";
|
|
6
|
+
const isNotNumber = (u) => typeof u !== "number";
|
|
7
|
+
const isBigint = (u) => typeof u === "bigint";
|
|
8
|
+
const isNotBigint = (u) => typeof u !== "bigint";
|
|
9
|
+
const isString = (u) => typeof u === "string";
|
|
10
|
+
const isNotString = (u) => typeof u !== "string";
|
|
11
|
+
const isSymbol = (u) => typeof u === "symbol";
|
|
12
|
+
const isNotSymbol = (u) => typeof u !== "symbol";
|
|
314
13
|
const isNull = (u) => u === null;
|
|
315
|
-
/**
|
|
316
|
-
* Type guard that checks if a value is not `null`.
|
|
317
|
-
*
|
|
318
|
-
* **Type Narrowing Behavior:**
|
|
319
|
-
*
|
|
320
|
-
* - Excludes `null` from the input type when `true`
|
|
321
|
-
* - Preserves all other types including `undefined`
|
|
322
|
-
* - Commonly used to filter out null values
|
|
323
|
-
*
|
|
324
|
-
* @example
|
|
325
|
-
*
|
|
326
|
-
* ```ts
|
|
327
|
-
* const values: readonly (number | null)[] = [null, 5] as const;
|
|
328
|
-
*
|
|
329
|
-
* const nonNullValues = values.filter(isNotNull);
|
|
330
|
-
*
|
|
331
|
-
* assert.deepStrictEqual(nonNullValues, [5]);
|
|
332
|
-
* ```
|
|
333
|
-
*
|
|
334
|
-
* @template T - The type of the input value (which could be `null`)
|
|
335
|
-
* @param u - The value to check
|
|
336
|
-
* @returns `true` if `u` is not `null`, `false` otherwise. When `true`,
|
|
337
|
-
* TypeScript excludes `null` from the type.
|
|
338
|
-
*/
|
|
339
14
|
const isNotNull = (u) => u !== null;
|
|
340
|
-
/**
|
|
341
|
-
* Type guard that checks if a value is `null` or `undefined` (nullish).
|
|
342
|
-
*
|
|
343
|
-
* This function uses the loose equality operator (`==`) to check for both
|
|
344
|
-
* `null` and `undefined` in a single comparison, which is the standard
|
|
345
|
-
* JavaScript idiom for nullish checks.
|
|
346
|
-
*
|
|
347
|
-
* **Type Narrowing Behavior:**
|
|
348
|
-
*
|
|
349
|
-
* - Narrows the input type to `null | undefined` when `true`
|
|
350
|
-
* - Useful for checking if a value is "nullish" (either null or undefined)
|
|
351
|
-
*
|
|
352
|
-
* @example
|
|
353
|
-
*
|
|
354
|
-
* ```ts
|
|
355
|
-
* const values: readonly (string | null | undefined)[] = [
|
|
356
|
-
* 'Ada',
|
|
357
|
-
* null,
|
|
358
|
-
* undefined,
|
|
359
|
-
* ] as const;
|
|
360
|
-
*
|
|
361
|
-
* const nullishValues = values.filter(isNullish);
|
|
362
|
-
*
|
|
363
|
-
* assert.deepStrictEqual(nullishValues, [null, undefined]);
|
|
364
|
-
* ```
|
|
365
|
-
*
|
|
366
|
-
* @param u - The value to check
|
|
367
|
-
* @returns `true` if `u` is `null` or `undefined`, `false` otherwise. When
|
|
368
|
-
* `true`, TypeScript narrows the type to `null | undefined`.
|
|
369
|
-
*/
|
|
370
15
|
const isNullish = (u) => u == null;
|
|
371
|
-
/**
|
|
372
|
-
* Type guard that checks if a value is not `null` or `undefined` (non-nullish).
|
|
373
|
-
*
|
|
374
|
-
* This function uses the loose inequality operator (`!=`) to check that a value
|
|
375
|
-
* is neither `null` nor `undefined` in a single comparison. This is equivalent
|
|
376
|
-
* to TypeScript's `NonNullable<T>` utility type.
|
|
377
|
-
*
|
|
378
|
-
* **Type Narrowing Behavior:**
|
|
379
|
-
*
|
|
380
|
-
* - Excludes both `null` and `undefined` from the input type when `true`
|
|
381
|
-
* - Equivalent to applying TypeScript's `NonNullable<T>` utility type
|
|
382
|
-
* - Commonly used to filter out nullish values from arrays
|
|
383
|
-
*
|
|
384
|
-
* @example
|
|
385
|
-
*
|
|
386
|
-
* ```ts
|
|
387
|
-
* const values: readonly (string | null | undefined)[] = [
|
|
388
|
-
* 'Ada',
|
|
389
|
-
* null,
|
|
390
|
-
* undefined,
|
|
391
|
-
* ] as const;
|
|
392
|
-
*
|
|
393
|
-
* const definedValues = values.filter(isNonNullish);
|
|
394
|
-
*
|
|
395
|
-
* assert.deepStrictEqual(definedValues, ['Ada']);
|
|
396
|
-
* ```
|
|
397
|
-
*
|
|
398
|
-
* @template T - The type of the input value
|
|
399
|
-
* @param u - The value to check
|
|
400
|
-
* @returns `true` if `u` is not `null` and not `undefined`, `false` otherwise.
|
|
401
|
-
* When `true`, TypeScript narrows the type to `NonNullable<T>`.
|
|
402
|
-
*/
|
|
403
16
|
const isNonNullish = (u) => u != null;
|
|
404
17
|
|
|
405
18
|
export { isBigint, isBoolean, isNonNullish, isNotBigint, isNotBoolean, isNotNull, isNotNumber, isNotString, isNotSymbol, isNotUndefined, isNull, isNullish, isNumber, isString, isSymbol, isUndefined };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-type.mjs","sources":["../../src/guard/is-type.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,WAAW,GAAG,CAAC,CAAU,KAAqB,CAAC,KAAK;AAEjE;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,cAAc,GAAG,CAAK,CAAI,KACrC,CAAC,KAAK;AAER;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAAmB,OAAO,CAAC,KAAK;AAEpE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KACnC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,QAAQ,GAAG,CAAC,CAAU,KAAkB,OAAO,CAAC,KAAK;AAElE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,MAAM,WAAW,GAAG,CAAK,CAAI,KAClC,OAAO,CAAC,KAAK;AAEf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,MAAM,GAAG,CAAC,CAAU,KAAgB,CAAC,KAAK;AAEvD;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,MAAM,SAAS,GAAG,CAAK,CAAW,KAAa,CAAC,KAAK;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACI,MAAM,SAAS,GAAG,CAAC,CAAU,KAA4B,CAAC,IAAI;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACI,MAAM,YAAY,GAAG,CAAK,CAAI,KAA0B,CAAC,IAAI;;;;"}
|
|
1
|
+
{"version":3,"file":"is-type.mjs","sources":["../../src/guard/is-type.mts"],"sourcesContent":["import { type RelaxedExclude } from 'ts-type-forge';\n\n/**\n * Type guard that checks if a value is `undefined`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input type to `undefined` when `true`\n * - Useful for explicit undefined checks\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | undefined)[] = [1, undefined, 2] as const;\n *\n * const undefinedValues = values.filter(isUndefined);\n *\n * assert.deepStrictEqual(undefinedValues, [undefined]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is `undefined`, `false` otherwise. When `true`,\n * TypeScript narrows the type to `undefined`.\n */\nexport const isUndefined = (u: unknown): u is undefined => u === undefined;\n\n/**\n * Type guard that checks if a value is not `undefined`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `undefined` from the input type when `true`\n * - Preserves all other types in the union\n * - Commonly used to filter out undefined values\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | undefined)[] = [1, undefined, 2] as const;\n *\n * const definedValues = values.filter(isNotUndefined);\n *\n * assert.deepStrictEqual(definedValues, [1, 2]);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not `undefined`, `false` otherwise. When `true`,\n * TypeScript excludes `undefined` from the type.\n */\nexport const isNotUndefined = <T,>(u: T): u is RelaxedExclude<T, undefined> =>\n u !== undefined;\n\n/**\n * Type guard that checks if a value is a boolean.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `boolean` when `true`\n * - Preserves literal boolean types (`true | false`)\n *\n * @example\n *\n * ```ts\n * const flags: readonly unknown[] = [true, 'no', false] as const;\n *\n * const booleans = flags.filter(isBoolean);\n *\n * assert.deepStrictEqual(booleans, [true, false]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a boolean, `false` otherwise. When `true`,\n * TypeScript narrows the type to `boolean`.\n */\nexport const isBoolean = (u: unknown): u is boolean => typeof u === 'boolean';\n\n/**\n * Type guard that checks if a value is not a boolean.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `boolean` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const flags: readonly unknown[] = [true, 'no', false] as const;\n *\n * const nonBooleans = flags.filter(isNotBoolean);\n *\n * assert.deepStrictEqual(nonBooleans, ['no']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a boolean, `false` otherwise. When `true`,\n * TypeScript excludes `boolean` from the type.\n */\nexport const isNotBoolean = <T,>(u: T): u is RelaxedExclude<T, boolean> =>\n typeof u !== 'boolean';\n\n/**\n * Type guard that checks if a value is a number.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `number` when `true`\n * - Includes `NaN`, `Infinity`, and `-Infinity` as valid numbers\n * - Preserves literal number types when possible\n *\n * @example\n *\n * ```ts\n * const mixed: readonly unknown[] = [1, '2', 3] as const;\n *\n * const numbers = mixed.filter(isNumber);\n *\n * assert.deepStrictEqual(numbers, [1, 3]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a number, `false` otherwise. When `true`,\n * TypeScript narrows the type to `number`.\n */\nexport const isNumber = (u: unknown): u is number => typeof u === 'number';\n\n/**\n * Type guard that checks if a value is not a number.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `number` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const mixed: readonly unknown[] = [1, '2', 3] as const;\n *\n * const nonNumbers = mixed.filter(isNotNumber);\n *\n * assert.deepStrictEqual(nonNumbers, ['2']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a number, `false` otherwise. When `true`,\n * TypeScript excludes `number` from the type.\n */\nexport const isNotNumber = <T,>(u: T): u is RelaxedExclude<T, number> =>\n typeof u !== 'number';\n\n/**\n * Type guard that checks if a value is a bigint.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `bigint` when `true`\n * - Identifies values created with `BigInt()` constructor or `n` suffix\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = [1n, 2, 3n] as const;\n *\n * const bigints = values.filter(isBigint);\n *\n * assert.deepStrictEqual(bigints, [1n, 3n]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a bigint, `false` otherwise. When `true`,\n * TypeScript narrows the type to `bigint`.\n */\nexport const isBigint = (u: unknown): u is bigint => typeof u === 'bigint';\n\n/**\n * Type guard that checks if a value is not a bigint.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `bigint` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = [1n, 2, 3n] as const;\n *\n * const nonBigints = values.filter(isNotBigint);\n *\n * assert.deepStrictEqual(nonBigints, [2]);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a bigint, `false` otherwise. When `true`,\n * TypeScript excludes `bigint` from the type.\n */\nexport const isNotBigint = <T,>(u: T): u is RelaxedExclude<T, bigint> =>\n typeof u !== 'bigint';\n\n/**\n * Type guard that checks if a value is a string.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `string` when `true`\n * - Preserves literal string types when possible\n * - Includes empty strings\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;\n *\n * const strings = values.filter(isString);\n *\n * assert.deepStrictEqual(strings, ['Ada', 'Lovelace']);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a string, `false` otherwise. When `true`,\n * TypeScript narrows the type to `string`.\n */\nexport const isString = (u: unknown): u is string => typeof u === 'string';\n\n/**\n * Type guard that checks if a value is not a string.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `string` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const values: readonly unknown[] = ['Ada', 42, 'Lovelace'] as const;\n *\n * const nonStrings = values.filter(isNotString);\n *\n * assert.deepStrictEqual(nonStrings, [42]);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a string, `false` otherwise. When `true`,\n * TypeScript excludes `string` from the type.\n */\nexport const isNotString = <T,>(u: T): u is RelaxedExclude<T, string> =>\n typeof u !== 'string';\n\n/**\n * Type guard that checks if a value is a symbol.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows `unknown` to `symbol` when `true`\n * - Identifies values created with `Symbol()` constructor\n *\n * @example\n *\n * ```ts\n * const id = Symbol('id');\n *\n * const shared = Symbol.for('shared');\n *\n * const tokens: readonly unknown[] = [id, 'shared', shared] as const;\n *\n * const symbols = tokens.filter(isSymbol);\n *\n * assert.deepStrictEqual(symbols, [id, shared]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is a symbol, `false` otherwise. When `true`,\n * TypeScript narrows the type to `symbol`.\n */\nexport const isSymbol = (u: unknown): u is symbol => typeof u === 'symbol';\n\n/**\n * Type guard that checks if a value is not a symbol.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `symbol` from the input type when `true`\n * - Preserves all other types in the union\n *\n * @example\n *\n * ```ts\n * const id = Symbol('id');\n *\n * const tokens: readonly unknown[] = [id, 'shared'] as const;\n *\n * const nonSymbols = tokens.filter(isNotSymbol);\n *\n * assert.deepStrictEqual(nonSymbols, ['shared']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not a symbol, `false` otherwise. When `true`,\n * TypeScript excludes `symbol` from the type.\n */\nexport const isNotSymbol = <T,>(u: T): u is RelaxedExclude<T, symbol> =>\n typeof u !== 'symbol';\n\n/**\n * Type guard that checks if a value is `null`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input type to `null` when `true`\n * - Useful for explicit null checks\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | null)[] = [null, 5] as const;\n *\n * const nullValues = values.filter(isNull);\n *\n * assert.deepStrictEqual(nullValues, [null]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is `null`, `false` otherwise. When `true`, TypeScript\n * narrows the type to `null`.\n */\nexport const isNull = (u: unknown): u is null => u === null;\n\n/**\n * Type guard that checks if a value is not `null`.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes `null` from the input type when `true`\n * - Preserves all other types including `undefined`\n * - Commonly used to filter out null values\n *\n * @example\n *\n * ```ts\n * const values: readonly (number | null)[] = [null, 5] as const;\n *\n * const nonNullValues = values.filter(isNotNull);\n *\n * assert.deepStrictEqual(nonNullValues, [5]);\n * ```\n *\n * @template T - The type of the input value (which could be `null`)\n * @param u - The value to check\n * @returns `true` if `u` is not `null`, `false` otherwise. When `true`,\n * TypeScript excludes `null` from the type.\n */\nexport const isNotNull = <T,>(u: T | null): u is T => u !== null;\n\n/**\n * Type guard that checks if a value is `null` or `undefined` (nullish).\n *\n * This function uses the loose equality operator (`==`) to check for both\n * `null` and `undefined` in a single comparison, which is the standard\n * JavaScript idiom for nullish checks.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the input type to `null | undefined` when `true`\n * - Useful for checking if a value is \"nullish\" (either null or undefined)\n *\n * @example\n *\n * ```ts\n * const values: readonly (string | null | undefined)[] = [\n * 'Ada',\n * null,\n * undefined,\n * ] as const;\n *\n * const nullishValues = values.filter(isNullish);\n *\n * assert.deepStrictEqual(nullishValues, [null, undefined]);\n * ```\n *\n * @param u - The value to check\n * @returns `true` if `u` is `null` or `undefined`, `false` otherwise. When\n * `true`, TypeScript narrows the type to `null | undefined`.\n */\nexport const isNullish = (u: unknown): u is null | undefined => u == null;\n\n/**\n * Type guard that checks if a value is not `null` or `undefined` (non-nullish).\n *\n * This function uses the loose inequality operator (`!=`) to check that a value\n * is neither `null` nor `undefined` in a single comparison. This is equivalent\n * to TypeScript's `NonNullable<T>` utility type.\n *\n * **Type Narrowing Behavior:**\n *\n * - Excludes both `null` and `undefined` from the input type when `true`\n * - Equivalent to applying TypeScript's `NonNullable<T>` utility type\n * - Commonly used to filter out nullish values from arrays\n *\n * @example\n *\n * ```ts\n * const values: readonly (string | null | undefined)[] = [\n * 'Ada',\n * null,\n * undefined,\n * ] as const;\n *\n * const definedValues = values.filter(isNonNullish);\n *\n * assert.deepStrictEqual(definedValues, ['Ada']);\n * ```\n *\n * @template T - The type of the input value\n * @param u - The value to check\n * @returns `true` if `u` is not `null` and not `undefined`, `false` otherwise.\n * When `true`, TypeScript narrows the type to `NonNullable<T>`.\n */\nexport const isNonNullish = <T,>(u: T): u is NonNullable<T> => u != null;\n"],"names":[],"mappings":"AAwBO,MAAM,WAAA,GAAc,CAAC,CAAA,KAA+B,CAAA,KAAM;AA0B1D,MAAM,cAAA,GAAiB,CAAK,CAAA,KACjC,CAAA,KAAM;AAwBD,MAAM,SAAA,GAAY,CAAC,CAAA,KAA6B,OAAO,CAAA,KAAM;AAyB7D,MAAM,YAAA,GAAe,CAAK,CAAA,KAC/B,OAAO,CAAA,KAAM;AAyBR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AAyB3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AAwBR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AAyB3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AAyBR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AAyB3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AA4BR,MAAM,QAAA,GAAW,CAAC,CAAA,KAA4B,OAAO,CAAA,KAAM;AA2B3D,MAAM,WAAA,GAAc,CAAK,CAAA,KAC9B,OAAO,CAAA,KAAM;AAwBR,MAAM,MAAA,GAAS,CAAC,CAAA,KAA0B,CAAA,KAAM;AA0BhD,MAAM,SAAA,GAAY,CAAK,CAAA,KAAwB,CAAA,KAAM;AAgCrD,MAAM,SAAA,GAAY,CAAC,CAAA,KAAsC,CAAA,IAAK;AAkC9D,MAAM,YAAA,GAAe,CAAK,CAAA,KAA8B,CAAA,IAAK;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-is-in.d.mts","sourceRoot":"","sources":["../../src/guard/key-is-in.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC3B,KAAK,CAAC,CAAC,SAAS,aAAa,
|
|
1
|
+
{"version":3,"file":"key-is-in.d.mts","sourceRoot":"","sources":["../../src/guard/key-is-in.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC3B,KAAK,CAAC,CAAC,SAAS,aAAa,OAExB,CAAC,OACD,CAAC,KACL,GAAG,IAAI,CAAC,GAAG,MAAM,OAAO,GAA8B,CAAC"}
|
package/dist/guard/key-is-in.mjs
CHANGED
|
@@ -1,43 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type guard that checks if a key exists as an own property in an object.
|
|
3
|
-
*
|
|
4
|
-
* This function is similar to `hasKey()` but with reversed parameter order and
|
|
5
|
-
* different type narrowing behavior. While `hasKey()` narrows the object type,
|
|
6
|
-
* `keyIsIn()` narrows the key type to be a valid key of the given object.
|
|
7
|
-
*
|
|
8
|
-
* **Type Narrowing Behavior:**
|
|
9
|
-
*
|
|
10
|
-
* - Narrows the key type to be a key that exists in the object (`K & keyof R`)
|
|
11
|
-
* - Useful when you have a dynamic key and want to ensure it's valid for a
|
|
12
|
-
* specific object
|
|
13
|
-
* - The object type remains unchanged
|
|
14
|
-
*
|
|
15
|
-
* **Implementation:** Uses `Object.hasOwn()` to check for own properties (not
|
|
16
|
-
* inherited).
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
*
|
|
20
|
-
* ```ts
|
|
21
|
-
* const user = { id: 1, name: 'Ada' } as const;
|
|
22
|
-
*
|
|
23
|
-
* const maybeKey: string = 'name';
|
|
24
|
-
*
|
|
25
|
-
* if (keyIsIn(maybeKey, user)) {
|
|
26
|
-
* assert.isTrue(user[maybeKey] === 'Ada');
|
|
27
|
-
* } else {
|
|
28
|
-
* assert.fail();
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @template K - The type of the key to check, must extend PropertyKey (string |
|
|
33
|
-
* number | symbol)
|
|
34
|
-
* @template R - The type of the record (object), must extend UnknownRecord
|
|
35
|
-
* @param key - The key to check for
|
|
36
|
-
* @param obj - The object to check within
|
|
37
|
-
* @returns `true` if `key` is an own property of `obj`, `false` otherwise. When
|
|
38
|
-
* `true`, TypeScript narrows the key type to be a valid key of the object.
|
|
39
|
-
* @see {@link hasKey} - Similar function that narrows the object type instead of the key type
|
|
40
|
-
*/
|
|
41
1
|
const keyIsIn = (key, obj) => Object.hasOwn(obj, key);
|
|
42
2
|
|
|
43
3
|
export { keyIsIn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-is-in.mjs","sources":["../../src/guard/key-is-in.mts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"key-is-in.mjs","sources":["../../src/guard/key-is-in.mts"],"sourcesContent":["import { type UnknownRecord } from 'ts-type-forge';\n\n/**\n * Type guard that checks if a key exists as an own property in an object.\n *\n * This function is similar to `hasKey()` but with reversed parameter order and\n * different type narrowing behavior. While `hasKey()` narrows the object type,\n * `keyIsIn()` narrows the key type to be a valid key of the given object.\n *\n * **Type Narrowing Behavior:**\n *\n * - Narrows the key type to be a key that exists in the object (`K & keyof R`)\n * - Useful when you have a dynamic key and want to ensure it's valid for a\n * specific object\n * - The object type remains unchanged\n *\n * **Implementation:** Uses `Object.hasOwn()` to check for own properties (not\n * inherited).\n *\n * @example\n *\n * ```ts\n * const user = { id: 1, name: 'Ada' } as const;\n *\n * const maybeKey: string = 'name';\n *\n * if (keyIsIn(maybeKey, user)) {\n * assert.isTrue(user[maybeKey] === 'Ada');\n * } else {\n * assert.fail();\n * }\n * ```\n *\n * @template K - The type of the key to check, must extend PropertyKey (string |\n * number | symbol)\n * @template R - The type of the record (object), must extend UnknownRecord\n * @param key - The key to check for\n * @param obj - The object to check within\n * @returns `true` if `key` is an own property of `obj`, `false` otherwise. When\n * `true`, TypeScript narrows the key type to be a valid key of the object.\n * @see {@link hasKey} - Similar function that narrows the object type instead of the key type\n */\nexport const keyIsIn = <\n const K extends PropertyKey,\n const R extends UnknownRecord,\n>(\n key: K,\n obj: R,\n): key is K & keyof typeof obj => Object.hasOwn(obj, key);\n"],"names":[],"mappings":"AA0CO,MAAM,UAAU,CAIrB,GAAA,EACA,QACgC,MAAA,CAAO,MAAA,CAAO,KAAK,GAAG;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -6,6 +6,7 @@ export { createQueue } from './collections/queue.mjs';
|
|
|
6
6
|
export { createStack } from './collections/stack.mjs';
|
|
7
7
|
export { expectType } from './expect-type.mjs';
|
|
8
8
|
export { hasKey } from './guard/has-key.mjs';
|
|
9
|
+
export { isBoundedLengthString, isFixedLengthString, isMaxLengthString, isMinLengthString } from './guard/is-length-bounded-string.mjs';
|
|
9
10
|
export { isNonEmptyString } from './guard/is-non-empty-string.mjs';
|
|
10
11
|
export { isNonNullObject } from './guard/is-non-null-object.mjs';
|
|
11
12
|
export { isPrimitive } from './guard/is-primitive.mjs';
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/iterator/range.mjs
CHANGED
|
@@ -36,23 +36,23 @@ import '../number/num.mjs';
|
|
|
36
36
|
import '../number/refined-number-utils.mjs';
|
|
37
37
|
|
|
38
38
|
function* range(...args) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
case 2:
|
|
48
|
-
// falls through
|
|
49
|
-
case 3: {
|
|
50
|
-
const [start, end, step = 1] = args;
|
|
51
|
-
for (let mut_i = asSafeInt(start); step > 0 ? mut_i < end : mut_i > end; mut_i = SafeInt.add(mut_i, asSafeInt(step))) {
|
|
52
|
-
yield mut_i;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
39
|
+
switch (args.length) {
|
|
40
|
+
case 1: {
|
|
41
|
+
const [end] = args;
|
|
42
|
+
for (const i of range(0, end, 1)) {
|
|
43
|
+
yield i;
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
55
46
|
}
|
|
47
|
+
case 2:
|
|
48
|
+
// falls through
|
|
49
|
+
case 3: {
|
|
50
|
+
const [start, end, step = 1] = args;
|
|
51
|
+
for (let mut_i = asSafeInt(start); step > 0 ? mut_i < end : mut_i > end; mut_i = SafeInt.add(mut_i, asSafeInt(step))) {
|
|
52
|
+
yield mut_i;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
export { range };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.mjs","sources":["../../src/iterator/range.mts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"range.mjs","sources":["../../src/iterator/range.mts"],"sourcesContent":["import {\n type NonZeroSafeInt,\n type PositiveSafeInt,\n type SafeUint,\n type WithSmallInt,\n} from 'ts-type-forge';\nimport { SafeInt, asSafeInt } from '../number/index.mjs';\n\n/**\n * Generates a sequence of numbers within a specified range using a generator\n * function.\n *\n * This function creates a generator that yields numbers from `start`\n * (inclusive) to `end` (exclusive) with the specified `step`\n * increment/decrement. The function implements the JavaScript iterator\n * protocol, making it compatible with for-of loops, spread operator,\n * Array.from(), and other iterator consumers.\n *\n * The function has two overloaded signatures:\n *\n * 1. For non-negative ranges: accepts SafeUint parameters and optional positive\n * step\n * 2. For general ranges: accepts SafeInt parameters and optional non-zero step\n *\n * **Generator Behavior:**\n *\n * - Yields values lazily (computed on-demand)\n * - Returns `void` when iteration completes\n * - Does not accept sent values (next parameter is ignored)\n * - Automatically handles direction based on step sign and start/end relationship\n *\n * **Step Parameter Behavior:**\n *\n * - Positive step: iterates from start toward end (start < end expected)\n * - Negative step: iterates from start toward end (start > end expected)\n * - Zero step: not allowed (NonZeroSafeInt constraint)\n * - Default step: 1 (positive direction)\n *\n * **Edge Cases:**\n *\n * - When start equals end: yields no values (empty sequence)\n * - When step direction conflicts with start/end relationship: yields no values\n * - All parameters must be safe integers (within JavaScript's safe integer range)\n *\n * @example\n *\n * ```ts\n * const zeroToThree = Array.from(range(0, 3));\n *\n * const threeToZero = Array.from(range(3, 0, -1));\n *\n * const defaultEnd = Array.from(range(4));\n *\n * assert.deepStrictEqual(zeroToThree, [0, 1, 2]);\n *\n * assert.deepStrictEqual(threeToZero, [3, 2, 1]);\n *\n * assert.deepStrictEqual(defaultEnd, [0, 1, 2, 3]);\n * ```\n *\n * @template T - The specific SafeInt or SafeUint type being generated\n * @param start - The starting number of the sequence (inclusive). Must be a\n * safe integer.\n * @param end - The end number of the sequence (exclusive). Must be a safe\n * integer.\n * @param step - The increment or decrement value. Defaults to 1. Must be\n * non-zero safe integer.\n * @returns A Generator object that yields safe integers in the specified range.\n */\nexport function range(\n end: WithSmallInt<SafeUint, MaxInt>,\n): Generator<SafeUint, void, unknown>;\n\nexport function range(\n start: WithSmallInt<SafeUint, MaxInt>,\n end: WithSmallInt<SafeUint, MaxInt>,\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n step?: WithSmallInt<PositiveSafeInt, MaxInt>,\n): Generator<SafeUint, void, unknown>;\n\nexport function range(\n start: WithSmallInt<SafeInt, MaxInt>,\n end: WithSmallInt<SafeInt, MaxInt>,\n step?: WithSmallInt<NonZeroSafeInt, MaxInt>,\n): Generator<SafeInt, void, unknown>;\n\nexport function* range(\n ...args:\n | readonly [end: WithSmallInt<SafeInt, MaxInt>]\n | readonly [\n start: WithSmallInt<SafeInt, MaxInt>,\n end: WithSmallInt<SafeInt, MaxInt>,\n step?: WithSmallInt<NonZeroSafeInt, MaxInt>,\n ]\n): Generator<SafeInt, void, unknown> {\n switch (args.length) {\n case 1: {\n const [end] = args;\n\n for (const i of range(0, end, 1)) {\n yield i;\n }\n\n break;\n }\n\n case 2:\n\n // falls through\n case 3: {\n const [start, end, step = 1] = args;\n\n for (\n let mut_i: SafeInt = asSafeInt(start);\n step > 0 ? mut_i < end : mut_i > end;\n mut_i = SafeInt.add(mut_i, asSafeInt(step))\n ) {\n yield mut_i;\n }\n }\n }\n}\n\ntype MaxInt = 512;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFO,UAAU,SACZ,IAAA,EAOgC;AACnC,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,GAAG,CAAA,GAAI,IAAA;AAEd,MAAA,KAAA,MAAW,CAAA,IAAK,KAAA,CAAM,CAAA,EAAG,GAAA,EAAK,CAAC,CAAA,EAAG;AAChC,QAAA,MAAM,CAAA;AAAA,MACR;AAEA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,CAAA;AAAA;AAAA,IAGL,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,GAAA,EAAK,IAAA,GAAO,CAAC,CAAA,GAAI,IAAA;AAE/B,MAAA,KAAA,IACM,QAAiB,SAAA,CAAU,KAAK,CAAA,EACpC,IAAA,GAAO,IAAI,KAAA,GAAQ,GAAA,GAAM,KAAA,GAAQ,GAAA,EACjC,QAAQ,OAAA,CAAQ,GAAA,CAAI,OAAO,SAAA,CAAU,IAAI,CAAC,CAAA,EAC1C;AACA,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF;AAAA;AAEJ;;;;"}
|
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":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIvD;;;;GAIG;AACH,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACI,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"json.d.mts","sourceRoot":"","sources":["../../src/json/json.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIvD;;;;GAIG;AACH,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACI,MAAM,KAAK,SACV,MAAM,YACF,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,KAClE,MAAM,CAAC,SAAS,EAAE,MAAM,CAc1B,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACI,MAAM,SAAS,UACb,OAAO,aACH,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,UACxD,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAQnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACI,MAAM,iBAAiB,UACrB,OAAO,2BACW,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,UAC7C,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAUnC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4EG;IACI,MAAM,kBAAkB,UACtB,aAAa,UACZ,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KACzC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAMnC,CAAC;CACH"}
|