ts-data-forge 9.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/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/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/is-length-bounded-string.d.mts.map +1 -1
- package/dist/guard/is-length-bounded-string.mjs +0 -157
- package/dist/guard/is-length-bounded-string.mjs.map +1 -1
- 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/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 +8 -7
|
@@ -1,149 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* @example
|
|
5
|
-
*
|
|
6
|
-
* ```ts
|
|
7
|
-
* const numbers = [1, 2, 3] as const;
|
|
8
|
-
*
|
|
9
|
-
* const sameNumbers = [1, 2, 3] as const;
|
|
10
|
-
*
|
|
11
|
-
* const differentNumbers = [1, 2, 4] as const;
|
|
12
|
-
*
|
|
13
|
-
* assert.isTrue(Arr.eq(numbers, sameNumbers));
|
|
14
|
-
*
|
|
15
|
-
* assert.isFalse(Arr.eq(numbers, differentNumbers));
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
const eq = (array1, array2, equality = Object.is) => array1.length === array2.length &&
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
20
|
-
array1.every((v, i) => equality(v, array2[i]));
|
|
21
|
-
/**
|
|
22
|
-
* Alias for `eq`.
|
|
23
|
-
*
|
|
24
|
-
* @see {@link eq}
|
|
25
|
-
*/
|
|
1
|
+
const eq = (array1, array2, equality = Object.is) => array1.length === array2.length && // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
2
|
+
array1.every((v, i) => equality(v, array2[i]));
|
|
26
3
|
const equal = eq;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* const subset = [1, 2] as const;
|
|
34
|
-
*
|
|
35
|
-
* const superset = [1, 2, 3] as const;
|
|
36
|
-
*
|
|
37
|
-
* const notSubset = [2, 4] as const;
|
|
38
|
-
*
|
|
39
|
-
* assert.isTrue(Arr.isSubset(subset, superset));
|
|
40
|
-
*
|
|
41
|
-
* assert.isFalse(Arr.isSubset(notSubset, superset));
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
const isSubset = (array1, array2) => array1.every((a) =>
|
|
45
|
-
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
46
|
-
array2.includes(a));
|
|
47
|
-
/**
|
|
48
|
-
* Checks if the first array is a superset of the second array.
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
*
|
|
52
|
-
* ```ts
|
|
53
|
-
* const potentialSuperset = ['a', 'b', 'c'] as const;
|
|
54
|
-
*
|
|
55
|
-
* const subset = ['a', 'c'] as const;
|
|
56
|
-
*
|
|
57
|
-
* const notSuperset = ['a', 'd'] as const;
|
|
58
|
-
*
|
|
59
|
-
* assert.isTrue(Arr.isSuperset(potentialSuperset, subset));
|
|
60
|
-
*
|
|
61
|
-
* assert.isFalse(Arr.isSuperset(subset, potentialSuperset));
|
|
62
|
-
*
|
|
63
|
-
* assert.isFalse(Arr.isSuperset(potentialSuperset, notSuperset));
|
|
64
|
-
* ```
|
|
65
|
-
*/
|
|
4
|
+
const isSubset = (array1, array2) => array1.every(
|
|
5
|
+
(a) => (
|
|
6
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
7
|
+
array2.includes(a)
|
|
8
|
+
)
|
|
9
|
+
);
|
|
66
10
|
const isSuperset = (array1, array2) => isSubset(array2, array1);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
*
|
|
72
|
-
* ```ts
|
|
73
|
-
* const refs = ['Ada', 'Alan', 'Grace'] as const;
|
|
74
|
-
*
|
|
75
|
-
* const attendees = ['Grace', 'Alan', 'Barbara'] as const;
|
|
76
|
-
*
|
|
77
|
-
* const both = Arr.setIntersection(refs, attendees);
|
|
78
|
-
*
|
|
79
|
-
* assert.deepStrictEqual(both, ['Alan', 'Grace']);
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
const setIntersection = (array1, array2) =>
|
|
83
|
-
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
84
|
-
array1.filter((e) => array2.includes(e));
|
|
85
|
-
/**
|
|
86
|
-
* Returns the set difference of two arrays (elements in first but not in second).
|
|
87
|
-
*
|
|
88
|
-
* @example
|
|
89
|
-
*
|
|
90
|
-
* ```ts
|
|
91
|
-
* const baseline = [1, 2, 3, 4] as const;
|
|
92
|
-
*
|
|
93
|
-
* const removed = [2, 4] as const;
|
|
94
|
-
*
|
|
95
|
-
* const remaining = Arr.setDifference(baseline, removed);
|
|
96
|
-
*
|
|
97
|
-
* assert.deepStrictEqual(remaining, [1, 3]);
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
11
|
+
const setIntersection = (array1, array2) => (
|
|
12
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
13
|
+
array1.filter((e) => array2.includes(e))
|
|
14
|
+
);
|
|
100
15
|
const setDifference = (array1, array2) => array1.filter((e) => !array2.includes(e));
|
|
101
|
-
/**
|
|
102
|
-
* Returns the set difference of two sorted numeric arrays (optimized for sorted arrays).
|
|
103
|
-
*
|
|
104
|
-
* @example
|
|
105
|
-
*
|
|
106
|
-
* ```ts
|
|
107
|
-
* const upcoming = [1, 3, 5, 7, 9] as const;
|
|
108
|
-
*
|
|
109
|
-
* const completed = [3, 4, 7] as const;
|
|
110
|
-
*
|
|
111
|
-
* const remaining = Arr.sortedNumSetDifference(upcoming, completed);
|
|
112
|
-
*
|
|
113
|
-
* const expected = [1, 5, 9] as const;
|
|
114
|
-
*
|
|
115
|
-
* assert.deepStrictEqual(remaining, expected);
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
16
|
const sortedNumSetDifference = (sortedList1, sortedList2) => {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
mut_result.push(val1);
|
|
134
|
-
mut_it1 += 1;
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
// val1 > val2
|
|
138
|
-
mut_it2 += 1;
|
|
139
|
-
}
|
|
17
|
+
const mut_result = [];
|
|
18
|
+
let mut_it1 = 0;
|
|
19
|
+
let mut_it2 = 0;
|
|
20
|
+
while (mut_it1 < sortedList1.length && mut_it2 < sortedList2.length) {
|
|
21
|
+
const val1 = sortedList1[mut_it1];
|
|
22
|
+
const val2 = sortedList2[mut_it2];
|
|
23
|
+
if (val1 === val2) {
|
|
24
|
+
mut_it1 += 1;
|
|
25
|
+
mut_it2 += 1;
|
|
26
|
+
} else if (val1 < val2) {
|
|
27
|
+
mut_result.push(val1);
|
|
28
|
+
mut_it1 += 1;
|
|
29
|
+
} else {
|
|
30
|
+
mut_it2 += 1;
|
|
140
31
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
return mut_result;
|
|
32
|
+
}
|
|
33
|
+
for (; mut_it1 < sortedList1.length; mut_it1 += 1) {
|
|
34
|
+
mut_result.push(sortedList1[mut_it1]);
|
|
35
|
+
}
|
|
36
|
+
return mut_result;
|
|
147
37
|
};
|
|
148
38
|
|
|
149
39
|
export { eq, equal, isSubset, isSuperset, setDifference, setIntersection, sortedNumSetDifference };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-set-op.mjs","sources":["../../../src/array/impl/array-utils-set-op.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array-utils-set-op.mjs","sources":["../../../src/array/impl/array-utils-set-op.mts"],"sourcesContent":["import { type Primitive } from 'ts-type-forge';\n\n/**\n * Checks if two arrays are equal by comparing their elements.\n *\n * @example\n *\n * ```ts\n * const numbers = [1, 2, 3] as const;\n *\n * const sameNumbers = [1, 2, 3] as const;\n *\n * const differentNumbers = [1, 2, 4] as const;\n *\n * assert.isTrue(Arr.eq(numbers, sameNumbers));\n *\n * assert.isFalse(Arr.eq(numbers, differentNumbers));\n * ```\n */\nexport const eq = <E,>(\n array1: readonly E[],\n array2: readonly E[],\n equality: (a: E, b: E) => boolean = Object.is,\n): boolean =>\n array1.length === array2.length &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n array1.every((v, i) => equality(v, array2[i]!));\n\n/**\n * Alias for `eq`.\n *\n * @see {@link eq}\n */\nexport const equal = eq;\n\n/**\n * Checks if the first array is a subset of the second array.\n *\n * @example\n *\n * ```ts\n * const subset = [1, 2] as const;\n *\n * const superset = [1, 2, 3] as const;\n *\n * const notSubset = [2, 4] as const;\n *\n * assert.isTrue(Arr.isSubset(subset, superset));\n *\n * assert.isFalse(Arr.isSubset(notSubset, superset));\n * ```\n */\nexport const isSubset = <E1 extends Primitive, E2 extends Primitive = E1>(\n array1: readonly E1[],\n array2: readonly E2[],\n): boolean =>\n array1.every((a) =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n array2.includes(a as E1 & E2),\n );\n\n/**\n * Checks if the first array is a superset of the second array.\n *\n * @example\n *\n * ```ts\n * const potentialSuperset = ['a', 'b', 'c'] as const;\n *\n * const subset = ['a', 'c'] as const;\n *\n * const notSuperset = ['a', 'd'] as const;\n *\n * assert.isTrue(Arr.isSuperset(potentialSuperset, subset));\n *\n * assert.isFalse(Arr.isSuperset(subset, potentialSuperset));\n *\n * assert.isFalse(Arr.isSuperset(potentialSuperset, notSuperset));\n * ```\n */\nexport const isSuperset = <E1 extends Primitive, E2 extends Primitive = E1>(\n array1: readonly E1[],\n array2: readonly E2[],\n): boolean => isSubset(array2, array1);\n\n/**\n * Returns the intersection of two arrays.\n *\n * @example\n *\n * ```ts\n * const refs = ['Ada', 'Alan', 'Grace'] as const;\n *\n * const attendees = ['Grace', 'Alan', 'Barbara'] as const;\n *\n * const both = Arr.setIntersection(refs, attendees);\n *\n * assert.deepStrictEqual(both, ['Alan', 'Grace']);\n * ```\n */\nexport const setIntersection = <\n E1 extends Primitive,\n E2 extends Primitive = E1,\n>(\n array1: readonly E1[],\n array2: readonly E2[],\n): readonly (E1 & E2)[] =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n (array1 as readonly (E1 & E2)[]).filter((e) => array2.includes(e));\n\n/**\n * Returns the set difference of two arrays (elements in first but not in second).\n *\n * @example\n *\n * ```ts\n * const baseline = [1, 2, 3, 4] as const;\n *\n * const removed = [2, 4] as const;\n *\n * const remaining = Arr.setDifference(baseline, removed);\n *\n * assert.deepStrictEqual(remaining, [1, 3]);\n * ```\n */\nexport const setDifference = <E extends Primitive>(\n array1: readonly E[],\n array2: readonly E[],\n): readonly E[] => array1.filter((e) => !array2.includes(e));\n\n/**\n * Returns the set difference of two sorted numeric arrays (optimized for sorted arrays).\n *\n * @example\n *\n * ```ts\n * const upcoming = [1, 3, 5, 7, 9] as const;\n *\n * const completed = [3, 4, 7] as const;\n *\n * const remaining = Arr.sortedNumSetDifference(upcoming, completed);\n *\n * const expected = [1, 5, 9] as const;\n *\n * assert.deepStrictEqual(remaining, expected);\n * ```\n */\nexport const sortedNumSetDifference = <E extends number>(\n sortedList1: readonly E[],\n sortedList2: readonly E[],\n): readonly E[] => {\n const mut_result: E[] = [];\n\n let mut_it1 = 0; // iterator for sortedList1\n\n let mut_it2 = 0; // iterator for sortedList2\n\n while (mut_it1 < sortedList1.length && mut_it2 < sortedList2.length) {\n // Non-null assertions are safe due to loop condition\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const val1 = sortedList1[mut_it1]!;\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const val2 = sortedList2[mut_it2]!;\n\n if (val1 === val2) {\n mut_it1 += 1;\n\n mut_it2 += 1;\n } else if (val1 < val2) {\n mut_result.push(val1);\n\n mut_it1 += 1;\n } else {\n // val1 > val2\n mut_it2 += 1;\n }\n }\n\n // Add remaining elements from sortedList1\n for (; mut_it1 < sortedList1.length; mut_it1 += 1) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mut_result.push(sortedList1[mut_it1]!);\n }\n\n return mut_result;\n};\n"],"names":[],"mappings":"AAmBO,MAAM,EAAA,GAAK,CAChB,MAAA,EACA,MAAA,EACA,WAAoC,MAAA,CAAO,EAAA,KAE3C,MAAA,CAAO,MAAA,KAAW,MAAA,CAAO,MAAA;AAEzB,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,EAAG,CAAA,KAAM,SAAS,CAAA,EAAG,MAAA,CAAO,CAAC,CAAE,CAAC;AAOzC,MAAM,KAAA,GAAQ;AAmBd,MAAM,QAAA,GAAW,CACtB,MAAA,EACA,MAAA,KAEA,MAAA,CAAO,KAAA;AAAA,EAAM,CAAC,CAAA;AAAA;AAAA,IAEZ,MAAA,CAAO,SAAS,CAAY;AAAA;AAC9B;AAqBK,MAAM,aAAa,CACxB,MAAA,EACA,MAAA,KACY,QAAA,CAAS,QAAQ,MAAM;AAiB9B,MAAM,eAAA,GAAkB,CAI7B,MAAA,EACA,MAAA;AAAA;AAAA,EAGC,OAAgC,MAAA,CAAO,CAAC,MAAM,MAAA,CAAO,QAAA,CAAS,CAAC,CAAC;AAAA;AAiB5D,MAAM,aAAA,GAAgB,CAC3B,MAAA,EACA,MAAA,KACiB,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAC;AAmBpD,MAAM,sBAAA,GAAyB,CACpC,WAAA,EACA,WAAA,KACiB;AACjB,EAAA,MAAM,aAAkB,EAAC;AAEzB,EAAA,IAAI,OAAA,GAAU,CAAA;AAEd,EAAA,IAAI,OAAA,GAAU,CAAA;AAEd,EAAA,OAAO,OAAA,GAAU,WAAA,CAAY,MAAA,IAAU,OAAA,GAAU,YAAY,MAAA,EAAQ;AAGnE,IAAA,MAAM,IAAA,GAAO,YAAY,OAAO,CAAA;AAGhC,IAAA,MAAM,IAAA,GAAO,YAAY,OAAO,CAAA;AAEhC,IAAA,IAAI,SAAS,IAAA,EAAM;AACjB,MAAA,OAAA,IAAW,CAAA;AAEX,MAAA,OAAA,IAAW,CAAA;AAAA,IACb,CAAA,MAAA,IAAW,OAAO,IAAA,EAAM;AACtB,MAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AAEpB,MAAA,OAAA,IAAW,CAAA;AAAA,IACb,CAAA,MAAO;AAEL,MAAA,OAAA,IAAW,CAAA;AAAA,IACb;AAAA,EACF;AAGA,EAAA,OAAO,OAAA,GAAU,WAAA,CAAY,MAAA,EAAQ,OAAA,IAAW,CAAA,EAAG;AAEjD,IAAA,UAAA,CAAW,IAAA,CAAK,WAAA,CAAY,OAAO,CAAE,CAAA;AAAA,EACvC;AAEA,EAAA,OAAO,UAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-size.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-size.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"array-utils-size.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-size.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,SAC/C,EAAE,KACR,EAAE,SAAS,aAAa,CAAC,OAAO,CAAC,GAChC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,GAC5C,QAAQ,CAAC,GAEU,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,MAAM,SAbQ,EAAE,SAAS,SAAS,OAAO,EAAE,SAC/C,EAAE,KACR,EAAE,SAAS,aAAa,CAAC,OAAO,CAAC,GAChC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,GAC5C,QAAQ,CAAC,GASa,CAAC"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
const size = (array) =>
|
|
2
|
-
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
3
|
-
array.length
|
|
4
|
-
|
|
5
|
-
* Alias for `size`.
|
|
6
|
-
*
|
|
7
|
-
* @see {@link size}
|
|
8
|
-
*/
|
|
1
|
+
const size = (array) => (
|
|
2
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
3
|
+
array.length
|
|
4
|
+
);
|
|
9
5
|
const length = size;
|
|
10
6
|
|
|
11
7
|
export { length, size };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-size.mjs","sources":["../../../src/array/impl/array-utils-size.mts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"array-utils-size.mjs","sources":["../../../src/array/impl/array-utils-size.mts"],"sourcesContent":["import {\n type IntersectBrand,\n type NonEmptyArray,\n type PositiveNumber,\n} from 'ts-type-forge';\n/**\n * Returns the size (length) of an array.\n *\n * @example\n *\n * ```ts\n * const numbers = [1, 2, 3] as const;\n *\n * const letters: readonly string[] = [] as const;\n *\n * const sizeOfNumbers = Arr.size(numbers);\n *\n * const sizeOfLetters = Arr.size(letters);\n *\n * assert.isTrue(sizeOfNumbers === 3);\n *\n * assert.isTrue(sizeOfLetters === 0);\n * ```\n */\nimport { type SizeType } from '../../types.mjs';\n\nexport const size = <const Ar extends readonly unknown[]>(\n array: Ar,\n): Ar extends NonEmptyArray<unknown>\n ? IntersectBrand<PositiveNumber, SizeType.Arr>\n : SizeType.Arr =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n array.length as never;\n\n/**\n * Alias for `size`.\n *\n * @see {@link size}\n */\nexport const length = size;\n"],"names":[],"mappings":"AA0BO,MAAM,OAAO,CAClB,KAAA;AAAA;AAAA,EAKA,KAAA,CAAM;AAAA;AAOD,MAAM,MAAA,GAAS;;;;"}
|
|
@@ -36,19 +36,18 @@ import { Num } from '../../number/num.mjs';
|
|
|
36
36
|
import '../../number/refined-number-utils.mjs';
|
|
37
37
|
|
|
38
38
|
function sliceClamped(...args) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return array.slice(startClamped, endClamped);
|
|
46
|
-
}
|
|
47
|
-
case 2: {
|
|
48
|
-
const [start, end] = args;
|
|
49
|
-
return (array) => sliceClamped(array, start, end);
|
|
50
|
-
}
|
|
39
|
+
switch (args.length) {
|
|
40
|
+
case 3: {
|
|
41
|
+
const [array, start, end] = args;
|
|
42
|
+
const startClamped = Num.clamp(0, array.length)(start);
|
|
43
|
+
const endClamped = Num.clamp(startClamped, array.length)(end);
|
|
44
|
+
return array.slice(startClamped, endClamped);
|
|
51
45
|
}
|
|
46
|
+
case 2: {
|
|
47
|
+
const [start, end] = args;
|
|
48
|
+
return (array) => sliceClamped(array, start, end);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
export { sliceClamped };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-slice-clamped.mjs","sources":["../../../src/array/impl/array-utils-slice-clamped.mts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"array-utils-slice-clamped.mjs","sources":["../../../src/array/impl/array-utils-slice-clamped.mts"],"sourcesContent":["import { Num } from '../../number/index.mjs';\nimport { type ArgArrayIndexWithNegative, type SizeType } from '../../types.mjs';\n\n/**\n * Slices an array with automatically clamped start and end indices.\n *\n * @example\n *\n * ```ts\n * const letters = ['a', 'b', 'c', 'd', 'e'] as readonly string[];\n *\n * const lastThree = Arr.sliceClamped(letters, -3, 10);\n *\n * const middleTwo = Arr.sliceClamped(1, 3)(letters);\n *\n * assert.deepStrictEqual(lastThree, ['a', 'b', 'c', 'd', 'e']);\n *\n * assert.deepStrictEqual(middleTwo, ['b', 'c']);\n * ```\n */\nexport function sliceClamped<const Ar extends readonly unknown[]>(\n array: Ar,\n start: ArgArrayIndexWithNegative<Ar>,\n end: ArgArrayIndexWithNegative<Ar>,\n): readonly Ar[number][];\n\nexport function sliceClamped(\n start: SizeType.ArgArrWithNegative,\n end: SizeType.ArgArrWithNegative,\n): <E>(array: readonly E[]) => readonly E[];\n\nexport function sliceClamped<E>(\n ...args:\n | readonly [\n readonly E[],\n SizeType.ArgArrWithNegative,\n SizeType.ArgArrWithNegative,\n ]\n | readonly [SizeType.ArgArrWithNegative, SizeType.ArgArrWithNegative]\n): readonly E[] | ((array: readonly E[]) => readonly E[]) {\n switch (args.length) {\n case 3: {\n const [array, start, end] = args;\n\n const startClamped = Num.clamp(0, array.length)(start);\n\n // Ensure endClamped is not less than startClamped.\n const endClamped = Num.clamp(startClamped, array.length)(end);\n\n return array.slice(startClamped, endClamped);\n }\n\n case 2: {\n const [start, end] = args;\n\n return (array) => sliceClamped(array, start, end);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BO,SAAS,gBACX,IAAA,EAOqD;AACxD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,KAAA,EAAO,GAAG,CAAA,GAAI,IAAA;AAE5B,MAAA,MAAM,eAAe,GAAA,CAAI,KAAA,CAAM,GAAG,KAAA,CAAM,MAAM,EAAE,KAAK,CAAA;AAGrD,MAAA,MAAM,aAAa,GAAA,CAAI,KAAA,CAAM,cAAc,KAAA,CAAM,MAAM,EAAE,GAAG,CAAA;AAE5D,MAAA,OAAO,KAAA,CAAM,KAAA,CAAM,YAAA,EAAc,UAAU,CAAA;AAAA,IAC7C;AAAA,IAEA,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,GAAG,CAAA,GAAI,IAAA;AAErB,MAAA,OAAO,CAAC,KAAA,KAAU,YAAA,CAAa,KAAA,EAAO,OAAO,GAAG,CAAA;AAAA,IAClD;AAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-slicing.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-slicing.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"array-utils-slicing.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-slicing.mts"],"names":[],"mappings":"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"}
|
|
@@ -38,115 +38,63 @@ import { size } from './array-utils-size.mjs';
|
|
|
38
38
|
import { sliceClamped } from './array-utils-slice-clamped.mjs';
|
|
39
39
|
import { isEmpty } from './array-utils-validation.mjs';
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
*
|
|
50
|
-
* const remainder = Arr.tail(scientists);
|
|
51
|
-
*
|
|
52
|
-
* assert.deepStrictEqual(remainder, ['Grace', 'Katherine']);
|
|
53
|
-
*
|
|
54
|
-
* assert.isTrue(remainder.length === 2);
|
|
55
|
-
* }
|
|
56
|
-
*
|
|
57
|
-
* {
|
|
58
|
-
* const values = [1, 2, 3] as const;
|
|
59
|
-
*
|
|
60
|
-
* const remainder = Arr.rest(values);
|
|
61
|
-
*
|
|
62
|
-
* const emptyRemainder = Arr.rest([1] as const);
|
|
63
|
-
*
|
|
64
|
-
* assert.deepStrictEqual(remainder, [2, 3] as const);
|
|
65
|
-
*
|
|
66
|
-
* assert.deepStrictEqual(emptyRemainder, [] as const);
|
|
67
|
-
* }
|
|
68
|
-
* ```
|
|
69
|
-
*/
|
|
70
|
-
const tail = (array) =>
|
|
71
|
-
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
72
|
-
array.slice(1);
|
|
73
|
-
/**
|
|
74
|
-
* Returns all elements of an array except the last one.
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
*
|
|
78
|
-
* ```ts
|
|
79
|
-
* const queue = ['task-1', 'task-2', 'task-3'] as const;
|
|
80
|
-
*
|
|
81
|
-
* const withoutLast = Arr.butLast(queue);
|
|
82
|
-
*
|
|
83
|
-
* assert.deepStrictEqual(withoutLast, ['task-1', 'task-2']);
|
|
84
|
-
*
|
|
85
|
-
* assert.isTrue(withoutLast.length === 2);
|
|
86
|
-
* ```
|
|
87
|
-
*/
|
|
88
|
-
const butLast = (array) =>
|
|
89
|
-
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
90
|
-
(isEmpty(array) ? [] : array.slice(0, -1));
|
|
41
|
+
const tail = (array) => (
|
|
42
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
43
|
+
array.slice(1)
|
|
44
|
+
);
|
|
45
|
+
const butLast = (array) => (
|
|
46
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
47
|
+
isEmpty(array) ? [] : array.slice(0, -1)
|
|
48
|
+
);
|
|
91
49
|
function take(...args) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
case 1: {
|
|
98
|
-
const [num] = args;
|
|
99
|
-
return (array) => take(array, num);
|
|
100
|
-
}
|
|
50
|
+
switch (args.length) {
|
|
51
|
+
case 2: {
|
|
52
|
+
const [array, num] = args;
|
|
53
|
+
return sliceClamped(array, 0, num);
|
|
101
54
|
}
|
|
55
|
+
case 1: {
|
|
56
|
+
const [num] = args;
|
|
57
|
+
return (array) => take(array, num);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
102
60
|
}
|
|
103
61
|
function takeLast(...args) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
62
|
+
switch (args.length) {
|
|
63
|
+
case 2: {
|
|
64
|
+
const [array, num] = args;
|
|
65
|
+
return sliceClamped(array, Uint32.sub(size(array), num), size(array));
|
|
66
|
+
}
|
|
67
|
+
case 1: {
|
|
68
|
+
const [num] = args;
|
|
69
|
+
return (array) => takeLast(array, num);
|
|
113
70
|
}
|
|
71
|
+
}
|
|
114
72
|
}
|
|
115
73
|
function skip(...args) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
case 1: {
|
|
122
|
-
const [num] = args;
|
|
123
|
-
return (array) => skip(array, num);
|
|
124
|
-
}
|
|
74
|
+
switch (args.length) {
|
|
75
|
+
case 2: {
|
|
76
|
+
const [array, num] = args;
|
|
77
|
+
return sliceClamped(array, num, size(array));
|
|
125
78
|
}
|
|
79
|
+
case 1: {
|
|
80
|
+
const [num] = args;
|
|
81
|
+
return (array) => skip(array, num);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
126
84
|
}
|
|
127
85
|
function skipLast(...args) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
86
|
+
switch (args.length) {
|
|
87
|
+
case 2: {
|
|
88
|
+
const [array, num] = args;
|
|
89
|
+
return sliceClamped(array, 0, Uint32.sub(size(array), num));
|
|
90
|
+
}
|
|
91
|
+
case 1: {
|
|
92
|
+
const [num] = args;
|
|
93
|
+
return (array) => skipLast(array, num);
|
|
137
94
|
}
|
|
95
|
+
}
|
|
138
96
|
}
|
|
139
|
-
/**
|
|
140
|
-
* Alias for `tail`.
|
|
141
|
-
*
|
|
142
|
-
* @see {@link tail}
|
|
143
|
-
*/
|
|
144
97
|
const rest = tail;
|
|
145
|
-
/**
|
|
146
|
-
* Alias for `skip`.
|
|
147
|
-
*
|
|
148
|
-
* @see {@link skip}
|
|
149
|
-
*/
|
|
150
98
|
const drop = skip;
|
|
151
99
|
|
|
152
100
|
export { butLast, drop, rest, skip, skipLast, tail, take, takeLast };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-slicing.mjs","sources":["../../../src/array/impl/array-utils-slicing.mts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"array-utils-slicing.mjs","sources":["../../../src/array/impl/array-utils-slicing.mts"],"sourcesContent":["import { type List, type NonEmptyArray, type SmallUint } from 'ts-type-forge';\nimport { Uint32 } from '../../number/index.mjs';\nimport { type SizeType } from '../../types.mjs';\nimport { size } from './array-utils-size.mjs';\nimport { sliceClamped } from './array-utils-slice-clamped.mjs';\nimport { isEmpty } from './array-utils-validation.mjs';\n\n/**\n * Returns all elements of an array except the first one.\n *\n * @example\n *\n * ```ts\n * {\n * const scientists = ['Ada', 'Grace', 'Katherine'] as const;\n *\n * const remainder = Arr.tail(scientists);\n *\n * assert.deepStrictEqual(remainder, ['Grace', 'Katherine']);\n *\n * assert.isTrue(remainder.length === 2);\n * }\n *\n * {\n * const values = [1, 2, 3] as const;\n *\n * const remainder = Arr.rest(values);\n *\n * const emptyRemainder = Arr.rest([1] as const);\n *\n * assert.deepStrictEqual(remainder, [2, 3] as const);\n *\n * assert.deepStrictEqual(emptyRemainder, [] as const);\n * }\n * ```\n */\nexport const tail = <const Ar extends readonly unknown[]>(\n array: Ar,\n): List.Tail<Ar> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n array.slice(1) as unknown as List.Tail<Ar>;\n\n/**\n * Returns all elements of an array except the last one.\n *\n * @example\n *\n * ```ts\n * const queue = ['task-1', 'task-2', 'task-3'] as const;\n *\n * const withoutLast = Arr.butLast(queue);\n *\n * assert.deepStrictEqual(withoutLast, ['task-1', 'task-2']);\n *\n * assert.isTrue(withoutLast.length === 2);\n * ```\n */\nexport const butLast = <const Ar extends readonly unknown[]>(\n array: Ar,\n): List.ButLast<Ar> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n (isEmpty(array) ? [] : array.slice(0, -1)) as unknown as List.ButLast<Ar>;\n\n/**\n * Takes the first N elements from an array.\n *\n * @example\n *\n * ```ts\n * const values = [1, 2, 3, 4] as const;\n *\n * const firstTwo = Arr.take(values, 2);\n *\n * const firstThree = Arr.take(3)(values);\n *\n * assert.deepStrictEqual(firstTwo, [1, 2]);\n *\n * assert.deepStrictEqual(firstThree, [1, 2, 3]);\n * ```\n */\nexport function take<\n const Ar extends readonly unknown[],\n N extends SizeType.ArgArr,\n>(\n array: Ar,\n num: N,\n): N extends SmallUint\n ? List.Take<N, Ar>\n : N extends SizeType.ArgArrPositive\n ? Ar extends NonEmptyArray<unknown>\n ? NonEmptyArray<Ar[number]>\n : readonly Ar[number][]\n : readonly Ar[number][];\n\nexport function take<N extends SizeType.ArgArr>(\n num: N,\n): <const Ar extends readonly unknown[]>(\n array: Ar,\n) => N extends SmallUint\n ? List.Take<N, Ar>\n : N extends SizeType.ArgArrPositive\n ? Ar extends NonEmptyArray<unknown>\n ? NonEmptyArray<Ar[number]>\n : readonly Ar[number][]\n : readonly Ar[number][];\n\nexport function take<E>(\n ...args:\n | readonly [array: readonly E[], num: SizeType.ArgArr]\n | readonly [num: SizeType.ArgArr]\n): readonly E[] | ((array: readonly E[]) => readonly E[]) {\n switch (args.length) {\n case 2: {\n const [array, num] = args;\n\n return sliceClamped(array, 0, num);\n }\n\n case 1: {\n const [num] = args;\n\n return (array) => take(array, num);\n }\n }\n}\n\n/**\n * Takes the last N elements from an array.\n *\n * @example\n *\n * ```ts\n * const values = [1, 2, 3, 4] as const;\n *\n * const lastTwo = Arr.takeLast(values, 2);\n *\n * const lastThree = Arr.takeLast(3)(values);\n *\n * assert.deepStrictEqual(lastTwo, [3, 4]);\n *\n * assert.deepStrictEqual(lastThree, [2, 3, 4]);\n * ```\n */\nexport function takeLast<\n const Ar extends readonly unknown[],\n N extends SizeType.ArgArr,\n>(\n array: Ar,\n num: N,\n): N extends SmallUint\n ? List.TakeLast<N, Ar>\n : N extends SizeType.ArgArrPositive\n ? Ar extends NonEmptyArray<unknown>\n ? NonEmptyArray<Ar[number]>\n : readonly Ar[number][]\n : readonly Ar[number][];\n\nexport function takeLast<N extends SizeType.ArgArr>(\n num: N,\n): <const Ar extends readonly unknown[]>(\n array: Ar,\n) => N extends SmallUint\n ? List.TakeLast<N, Ar>\n : N extends SizeType.ArgArrPositive\n ? Ar extends NonEmptyArray<unknown>\n ? NonEmptyArray<Ar[number]>\n : readonly Ar[number][]\n : readonly Ar[number][];\n\nexport function takeLast<E>(\n ...args:\n | readonly [array: readonly E[], num: SizeType.ArgArr]\n | readonly [num: SizeType.ArgArr]\n): readonly E[] | ((array: readonly E[]) => readonly E[]) {\n switch (args.length) {\n case 2: {\n const [array, num] = args;\n\n return sliceClamped(array, Uint32.sub(size(array), num), size(array));\n }\n\n case 1: {\n const [num] = args;\n\n return (array) => takeLast(array, num);\n }\n }\n}\n\n/**\n * Skips the first N elements of an array.\n *\n * @example\n *\n * ```ts\n * const values = ['a', 'b', 'c', 'd'] as const;\n *\n * const withoutFirstTwo = Arr.skip(values, 2);\n *\n * const withoutFirstThree = Arr.skip(3)(values);\n *\n * assert.deepStrictEqual(withoutFirstTwo, ['c', 'd']);\n *\n * assert.deepStrictEqual(withoutFirstThree, ['d']);\n * ```\n */\nexport function skip<\n const Ar extends readonly unknown[],\n N extends SizeType.ArgArr,\n>(\n array: Ar,\n num: N,\n): N extends SmallUint ? List.Skip<N, Ar> : readonly Ar[number][];\n\n// curried version\nexport function skip<N extends SizeType.ArgArr>(\n num: N,\n): <const Ar extends readonly unknown[]>(\n array: Ar,\n) => N extends SmallUint ? List.Skip<N, Ar> : readonly Ar[number][];\n\nexport function skip<E>(\n ...args: readonly [readonly E[], SizeType.ArgArr] | readonly [SizeType.ArgArr]\n): readonly E[] | ((array: readonly E[]) => readonly E[]) {\n switch (args.length) {\n case 2: {\n const [array, num] = args;\n\n return sliceClamped(array, num, size(array));\n }\n\n case 1: {\n const [num] = args;\n\n return (array) => skip(array, num);\n }\n }\n}\n\n/**\n * Skips the last N elements of an array.\n *\n * @example\n *\n * ```ts\n * const values = ['a', 'b', 'c', 'd'] as const;\n *\n * const withoutLastTwo = Arr.skipLast(values, 2);\n *\n * const withoutLastThree = Arr.skipLast(3)(values);\n *\n * assert.deepStrictEqual(withoutLastTwo, ['a', 'b']);\n *\n * assert.deepStrictEqual(withoutLastThree, ['a']);\n * ```\n */\nexport function skipLast<\n const Ar extends readonly unknown[],\n N extends SizeType.ArgArr,\n>(\n array: Ar,\n num: N,\n): N extends SmallUint ? List.SkipLast<N, Ar> : readonly Ar[number][];\n\n// curried version\nexport function skipLast<N extends SizeType.ArgArr>(\n num: N,\n): <const Ar extends readonly unknown[]>(\n array: Ar,\n) => N extends SmallUint ? List.SkipLast<N, Ar> : readonly Ar[number][];\n\nexport function skipLast<E>(\n ...args:\n | readonly [array: readonly E[], num: SizeType.ArgArr]\n | readonly [num: SizeType.ArgArr]\n): readonly E[] | ((array: readonly E[]) => readonly E[]) {\n switch (args.length) {\n case 2: {\n const [array, num] = args;\n\n return sliceClamped(array, 0, Uint32.sub(size(array), num));\n }\n\n case 1: {\n const [num] = args;\n\n return (array) => skipLast(array, num);\n }\n }\n}\n\n/**\n * Alias for `tail`.\n *\n * @see {@link tail}\n */\nexport const rest = tail;\n\n/**\n * Alias for `skip`.\n *\n * @see {@link skip}\n */\nexport const drop = skip;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCO,MAAM,OAAO,CAClB,KAAA;AAAA;AAAA,EAGA,KAAA,CAAM,MAAM,CAAC;AAAA;AAiBR,MAAM,UAAU,CACrB,KAAA;AAAA;AAAA,EAGC,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAK,KAAA,CAAM,KAAA,CAAM,GAAG,EAAE;AAAA;AA6CnC,SAAS,QACX,IAAA,EAGqD;AACxD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,GAAG,CAAA,GAAI,IAAA;AAErB,MAAA,OAAO,YAAA,CAAa,KAAA,EAAO,CAAA,EAAG,GAAG,CAAA;AAAA,IACnC;AAAA,IAEA,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,GAAG,CAAA,GAAI,IAAA;AAEd,MAAA,OAAO,CAAC,KAAA,KAAU,IAAA,CAAK,KAAA,EAAO,GAAG,CAAA;AAAA,IACnC;AAAA;AAEJ;AA6CO,SAAS,YACX,IAAA,EAGqD;AACxD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,GAAG,CAAA,GAAI,IAAA;AAErB,MAAA,OAAO,YAAA,CAAa,KAAA,EAAO,MAAA,CAAO,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA,EAAG,GAAG,CAAA,EAAG,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,IACtE;AAAA,IAEA,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,GAAG,CAAA,GAAI,IAAA;AAEd,MAAA,OAAO,CAAC,KAAA,KAAU,QAAA,CAAS,KAAA,EAAO,GAAG,CAAA;AAAA,IACvC;AAAA;AAEJ;AAkCO,SAAS,QACX,IAAA,EACqD;AACxD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,GAAG,CAAA,GAAI,IAAA;AAErB,MAAA,OAAO,YAAA,CAAa,KAAA,EAAO,GAAA,EAAK,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,IAC7C;AAAA,IAEA,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,GAAG,CAAA,GAAI,IAAA;AAEd,MAAA,OAAO,CAAC,KAAA,KAAU,IAAA,CAAK,KAAA,EAAO,GAAG,CAAA;AAAA,IACnC;AAAA;AAEJ;AAkCO,SAAS,YACX,IAAA,EAGqD;AACxD,EAAA,QAAQ,KAAK,MAAA;AAAQ,IACnB,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,KAAA,EAAO,GAAG,CAAA,GAAI,IAAA;AAErB,MAAA,OAAO,YAAA,CAAa,OAAO,CAAA,EAAG,MAAA,CAAO,IAAI,IAAA,CAAK,KAAK,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,IAC5D;AAAA,IAEA,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,CAAC,GAAG,CAAA,GAAI,IAAA;AAEd,MAAA,OAAO,CAAC,KAAA,KAAU,QAAA,CAAS,KAAA,EAAO,GAAG,CAAA;AAAA,IACvC;AAAA;AAEJ;AAOO,MAAM,IAAA,GAAO;AAOb,MAAM,IAAA,GAAO;;;;"}
|
|
@@ -97,7 +97,7 @@ export declare const toReversed: <const Ar extends readonly unknown[]>(array: Ar
|
|
|
97
97
|
* assert.deepStrictEqual(alphabetical, expectedWords);
|
|
98
98
|
* ```
|
|
99
99
|
*/
|
|
100
|
-
export declare const toSorted: <const Ar extends readonly unknown[]>(...[array, comparator]: Ar extends readonly number[] ? readonly [array: Ar, comparator?: (x: Ar[number], y: Ar[number]) => number] : readonly [array: Ar, comparator: (x: Ar[number], y: Ar[number]) => number]) => IsFixedLengthList<Ar> extends true ? ArrayOfLength<Ar[
|
|
100
|
+
export declare const toSorted: <const Ar extends readonly unknown[]>(...[array, comparator]: Ar extends readonly number[] ? readonly [array: Ar, comparator?: (x: Ar[number], y: Ar[number]) => number] : readonly [array: Ar, comparator: (x: Ar[number], y: Ar[number]) => number]) => IsFixedLengthList<Ar> extends true ? ArrayOfLength<Ar['length'], Ar[number]> : Ar extends NonEmptyArray<unknown> ? NonEmptyArray<Ar[number]> : readonly Ar[number][];
|
|
101
101
|
/**
|
|
102
102
|
* Sorts an array by a mapped value.
|
|
103
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils-transformation.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-transformation.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,IAAI,EAET,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAInD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAKzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EAAE,CAAC,EACxD,KAAK,EAAE,EAAE,EACT,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,GACjD,QAAQ,CAAC;KAAG,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC;CAAE,CAAC,CAAC;AAGpC,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EACtB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,GACtC,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,EAAE,EAC/B,KAAK,EAAE,EAAE,KACN,QAAQ,CAAC;KAAG,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC;CAAE,CAAC,CAAC;AAuBtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,EAAE,CAAC,EACzD,KAAK,EAAE,EAAE,EACT,OAAO,EAAE,CACP,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,EACxB,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,KACzB,CAAC,EACN,IAAI,EAAE,CAAC,GACN,aAAa,CAAC,CAAC,CAAC,CAAC;AAEpB,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EACvB,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,EAC3E,IAAI,EAAE,CAAC,GACN,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;AAiD7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,CAAC,EAAE,SAAS,SAAS,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"array-utils-transformation.d.mts","sourceRoot":"","sources":["../../../src/array/impl/array-utils-transformation.mts"],"names":[],"mappings":"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"}
|