type-plus 7.3.1 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -183
- package/cjs/any/any_type.d.ts +8 -8
- package/cjs/any/any_type.d.ts.map +1 -1
- package/cjs/array/array.at.d.ts +3 -1
- package/cjs/array/array.at.d.ts.map +1 -1
- package/cjs/array/array.entries.d.ts +4 -3
- package/cjs/array/array.entries.d.ts.map +1 -1
- package/cjs/array/array.find_last.d.ts +3 -1
- package/cjs/array/array.find_last.d.ts.map +1 -1
- package/cjs/array/array.some.d.ts +1 -1
- package/cjs/array/array.some.d.ts.map +1 -1
- package/cjs/array/array_plus.common_prop_keys.d.ts +27 -0
- package/cjs/array/array_plus.common_prop_keys.d.ts.map +1 -0
- package/cjs/array/array_plus.common_prop_keys.js +3 -0
- package/cjs/array/array_plus.common_prop_keys.js.map +1 -0
- package/cjs/array/{array.concat.d.ts → array_plus.concat.d.ts} +4 -1
- package/cjs/array/array_plus.concat.d.ts.map +1 -0
- package/cjs/array/array_plus.concat.js +3 -0
- package/cjs/array/array_plus.concat.js.map +1 -0
- package/cjs/array/array_plus.d.ts +7 -3
- package/cjs/array/array_plus.d.ts.map +1 -1
- package/cjs/array/array_plus.drop_match.d.ts +4 -0
- package/cjs/array/array_plus.drop_match.d.ts.map +1 -0
- package/cjs/array/array_plus.drop_match.js +3 -0
- package/cjs/array/array_plus.drop_match.js.map +1 -0
- package/cjs/array/array_plus.element_match.d.ts +44 -0
- package/cjs/array/array_plus.element_match.d.ts.map +1 -0
- package/cjs/array/array_plus.element_match.js +3 -0
- package/cjs/array/array_plus.element_match.js.map +1 -0
- package/cjs/array/array_plus.filter.d.ts +2 -0
- package/cjs/array/array_plus.filter.d.ts.map +1 -0
- package/cjs/array/array_plus.filter.js +3 -0
- package/cjs/array/array_plus.filter.js.map +1 -0
- package/cjs/array/array_plus.find.d.ts +57 -0
- package/cjs/array/array_plus.find.d.ts.map +1 -0
- package/cjs/array/array_plus.find.js +3 -0
- package/cjs/array/array_plus.find.js.map +1 -0
- package/cjs/array/array_plus.pad_start.d.ts +5 -0
- package/cjs/array/array_plus.pad_start.d.ts.map +1 -0
- package/cjs/array/array_plus.pad_start.js +3 -0
- package/cjs/array/array_plus.pad_start.js.map +1 -0
- package/cjs/array/array_type.d.ts +30 -12
- package/cjs/array/array_type.d.ts.map +1 -1
- package/cjs/array/filter.d.ts +24 -4
- package/cjs/array/filter.d.ts.map +1 -1
- package/cjs/array/find_first.d.ts +62 -0
- package/cjs/array/find_first.d.ts.map +1 -0
- package/cjs/array/{array.find.js → find_first.js} +1 -1
- package/cjs/array/find_first.js.map +1 -0
- package/cjs/array/head.d.ts +30 -1
- package/cjs/array/head.d.ts.map +1 -1
- package/cjs/array/intersect_of_props.d.ts +5 -3
- package/cjs/array/intersect_of_props.d.ts.map +1 -1
- package/cjs/array/last.d.ts +27 -2
- package/cjs/array/last.d.ts.map +1 -1
- package/cjs/array/literal_array.d.ts +5 -0
- package/cjs/array/literal_array.d.ts.map +1 -1
- package/cjs/array/literal_array.js +5 -0
- package/cjs/array/literal_array.js.map +1 -1
- package/cjs/array/pad_start.d.ts +5 -5
- package/cjs/array/pad_start.d.ts.map +1 -1
- package/cjs/array/reduce_while.d.ts +6 -0
- package/cjs/array/reduce_while.d.ts.map +1 -1
- package/cjs/array/reduce_while.js +6 -0
- package/cjs/array/reduce_while.js.map +1 -1
- package/cjs/array/reverse.d.ts +5 -0
- package/cjs/array/reverse.d.ts.map +1 -1
- package/cjs/array/union_of_props.d.ts +1 -1
- package/cjs/array/union_of_props.d.ts.map +1 -1
- package/cjs/assertion/assert_type.d.ts +4 -1
- package/cjs/assertion/assert_type.d.ts.map +1 -1
- package/cjs/assertion/assert_type.js.map +1 -1
- package/cjs/functional/compose.d.ts +2 -1
- package/cjs/functional/compose.d.ts.map +1 -1
- package/cjs/functional/compose.js.map +1 -1
- package/cjs/functional/context.d.ts.map +1 -1
- package/cjs/index.d.ts +22 -3
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +9 -3
- package/cjs/index.js.map +1 -1
- package/cjs/math/numeric_struct.d.ts +1 -1
- package/cjs/math/numeric_struct.d.ts.map +1 -1
- package/cjs/mix_types/any_or_never_type.d.ts +1 -1
- package/cjs/never/never_type.d.ts +11 -0
- package/cjs/never/never_type.d.ts.map +1 -1
- package/cjs/nodejs/isNodeError.d.ts.map +1 -1
- package/cjs/nominal/brand.d.ts.map +1 -1
- package/cjs/nominal/flavor.d.ts.map +1 -1
- package/cjs/object/index.d.ts +0 -1
- package/cjs/object/index.d.ts.map +1 -1
- package/cjs/object/index.js.map +1 -1
- package/cjs/testing/test_type.d.ts +277 -233
- package/cjs/testing/test_type.d.ts.map +1 -1
- package/cjs/testing/test_type.js.map +1 -1
- package/cjs/tuple/common_prop_keys.d.ts +34 -0
- package/cjs/tuple/common_prop_keys.d.ts.map +1 -0
- package/cjs/tuple/common_prop_keys.js.map +1 -0
- package/cjs/tuple/create_tuple.d.ts.map +1 -1
- package/cjs/tuple/drop.d.ts +91 -0
- package/cjs/tuple/drop.d.ts.map +1 -0
- package/cjs/{array → tuple}/drop.js +3 -1
- package/cjs/tuple/drop.js.map +1 -0
- package/{esm/array → cjs/tuple}/tail.d.ts +1 -1
- package/cjs/{array → tuple}/tail.d.ts.map +1 -1
- package/cjs/{array → tuple}/tail.js.map +1 -1
- package/cjs/tuple/tuple_plus.common_prop_keys.d.ts +28 -0
- package/cjs/tuple/tuple_plus.common_prop_keys.d.ts.map +1 -0
- package/cjs/tuple/tuple_plus.common_prop_keys.js +3 -0
- package/cjs/tuple/tuple_plus.common_prop_keys.js.map +1 -0
- package/cjs/tuple/tuple_plus.d.ts +5 -1
- package/cjs/tuple/tuple_plus.d.ts.map +1 -1
- package/cjs/tuple/tuple_plus.drop_match.d.ts +6 -0
- package/cjs/tuple/tuple_plus.drop_match.d.ts.map +1 -0
- package/cjs/tuple/tuple_plus.drop_match.js +3 -0
- package/cjs/tuple/tuple_plus.drop_match.js.map +1 -0
- package/cjs/tuple/tuple_plus.filter.d.ts +13 -0
- package/cjs/tuple/tuple_plus.filter.d.ts.map +1 -0
- package/cjs/tuple/tuple_plus.filter.js +3 -0
- package/cjs/tuple/tuple_plus.filter.js.map +1 -0
- package/cjs/tuple/tuple_plus.find.d.ts +64 -0
- package/cjs/tuple/tuple_plus.find.d.ts.map +1 -0
- package/cjs/tuple/tuple_plus.find.js +3 -0
- package/cjs/tuple/tuple_plus.find.js.map +1 -0
- package/cjs/tuple/tuple_plus.js +0 -15
- package/cjs/tuple/tuple_plus.js.map +1 -1
- package/cjs/tuple/tuple_plus.pad_start.d.ts +11 -5
- package/cjs/tuple/tuple_plus.pad_start.d.ts.map +1 -1
- package/cjs/tuple/tuple_type.d.ts +41 -23
- package/cjs/tuple/tuple_type.d.ts.map +1 -1
- package/cjs/union/union.d.ts +33 -0
- package/cjs/union/union.d.ts.map +1 -0
- package/cjs/{array/array.concat.js → union/union.js} +1 -1
- package/cjs/union/union.js.map +1 -0
- package/cjs/unknown/unknown_type.d.ts +12 -0
- package/cjs/unknown/unknown_type.d.ts.map +1 -1
- package/cjs/utils/options.d.ts +10 -0
- package/cjs/utils/options.d.ts.map +1 -0
- package/cjs/utils/options.js +3 -0
- package/cjs/utils/options.js.map +1 -0
- package/esm/any/any_type.d.ts +8 -8
- package/esm/any/any_type.d.ts.map +1 -1
- package/esm/array/array.at.d.ts +3 -1
- package/esm/array/array.at.d.ts.map +1 -1
- package/esm/array/array.entries.d.ts +4 -3
- package/esm/array/array.entries.d.ts.map +1 -1
- package/esm/array/array.find_last.d.ts +3 -1
- package/esm/array/array.find_last.d.ts.map +1 -1
- package/esm/array/array.some.d.ts +1 -1
- package/esm/array/array.some.d.ts.map +1 -1
- package/esm/array/array_plus.common_prop_keys.d.ts +27 -0
- package/esm/array/array_plus.common_prop_keys.d.ts.map +1 -0
- package/esm/array/array_plus.common_prop_keys.js +2 -0
- package/esm/array/array_plus.common_prop_keys.js.map +1 -0
- package/esm/array/{array.concat.d.ts → array_plus.concat.d.ts} +4 -1
- package/esm/array/array_plus.concat.d.ts.map +1 -0
- package/esm/array/array_plus.concat.js +2 -0
- package/esm/array/array_plus.concat.js.map +1 -0
- package/esm/array/array_plus.d.ts +7 -3
- package/esm/array/array_plus.d.ts.map +1 -1
- package/esm/array/array_plus.drop_match.d.ts +4 -0
- package/esm/array/array_plus.drop_match.d.ts.map +1 -0
- package/esm/array/array_plus.drop_match.js +2 -0
- package/esm/array/array_plus.drop_match.js.map +1 -0
- package/esm/array/array_plus.element_match.d.ts +44 -0
- package/esm/array/array_plus.element_match.d.ts.map +1 -0
- package/esm/array/array_plus.element_match.js +2 -0
- package/esm/array/array_plus.element_match.js.map +1 -0
- package/esm/array/array_plus.filter.d.ts +2 -0
- package/esm/array/array_plus.filter.d.ts.map +1 -0
- package/esm/array/array_plus.filter.js +2 -0
- package/esm/array/array_plus.filter.js.map +1 -0
- package/esm/array/array_plus.find.d.ts +57 -0
- package/esm/array/array_plus.find.d.ts.map +1 -0
- package/esm/array/array_plus.find.js +2 -0
- package/esm/array/array_plus.find.js.map +1 -0
- package/esm/array/array_plus.pad_start.d.ts +5 -0
- package/esm/array/array_plus.pad_start.d.ts.map +1 -0
- package/esm/array/array_plus.pad_start.js +2 -0
- package/esm/array/array_plus.pad_start.js.map +1 -0
- package/esm/array/array_type.d.ts +30 -12
- package/esm/array/array_type.d.ts.map +1 -1
- package/esm/array/filter.d.ts +24 -4
- package/esm/array/filter.d.ts.map +1 -1
- package/esm/array/find_first.d.ts +62 -0
- package/esm/array/find_first.d.ts.map +1 -0
- package/esm/array/find_first.js +2 -0
- package/esm/array/find_first.js.map +1 -0
- package/esm/array/head.d.ts +30 -1
- package/esm/array/head.d.ts.map +1 -1
- package/esm/array/intersect_of_props.d.ts +5 -3
- package/esm/array/intersect_of_props.d.ts.map +1 -1
- package/esm/array/last.d.ts +27 -2
- package/esm/array/last.d.ts.map +1 -1
- package/esm/array/literal_array.d.ts +5 -0
- package/esm/array/literal_array.d.ts.map +1 -1
- package/esm/array/literal_array.js +5 -0
- package/esm/array/literal_array.js.map +1 -1
- package/esm/array/pad_start.d.ts +5 -5
- package/esm/array/pad_start.d.ts.map +1 -1
- package/esm/array/reduce_while.d.ts +6 -0
- package/esm/array/reduce_while.d.ts.map +1 -1
- package/esm/array/reduce_while.js +6 -0
- package/esm/array/reduce_while.js.map +1 -1
- package/esm/array/reverse.d.ts +5 -0
- package/esm/array/reverse.d.ts.map +1 -1
- package/esm/array/union_of_props.d.ts +1 -1
- package/esm/array/union_of_props.d.ts.map +1 -1
- package/esm/assertion/assert_type.d.ts +4 -1
- package/esm/assertion/assert_type.d.ts.map +1 -1
- package/esm/assertion/assert_type.js.map +1 -1
- package/esm/functional/compose.d.ts +2 -1
- package/esm/functional/compose.d.ts.map +1 -1
- package/esm/functional/compose.js.map +1 -1
- package/esm/functional/context.d.ts.map +1 -1
- package/esm/index.d.ts +22 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -2
- package/esm/index.js.map +1 -1
- package/esm/math/numeric_struct.d.ts +1 -1
- package/esm/math/numeric_struct.d.ts.map +1 -1
- package/esm/mix_types/any_or_never_type.d.ts +1 -1
- package/esm/never/never_type.d.ts +11 -0
- package/esm/never/never_type.d.ts.map +1 -1
- package/esm/nodejs/isNodeError.d.ts.map +1 -1
- package/esm/nominal/brand.d.ts.map +1 -1
- package/esm/nominal/flavor.d.ts.map +1 -1
- package/esm/object/index.d.ts +0 -1
- package/esm/object/index.d.ts.map +1 -1
- package/esm/object/index.js.map +1 -1
- package/esm/testing/test_type.d.ts +277 -233
- package/esm/testing/test_type.d.ts.map +1 -1
- package/esm/testing/test_type.js.map +1 -1
- package/esm/tuple/common_prop_keys.d.ts +34 -0
- package/esm/tuple/common_prop_keys.d.ts.map +1 -0
- package/esm/tuple/common_prop_keys.js.map +1 -0
- package/esm/tuple/create_tuple.d.ts.map +1 -1
- package/esm/tuple/drop.d.ts +91 -0
- package/esm/tuple/drop.d.ts.map +1 -0
- package/esm/tuple/drop.js +9 -0
- package/esm/tuple/drop.js.map +1 -0
- package/{cjs/array → esm/tuple}/tail.d.ts +1 -1
- package/esm/{array → tuple}/tail.d.ts.map +1 -1
- package/esm/{array → tuple}/tail.js.map +1 -1
- package/esm/tuple/tuple_plus.common_prop_keys.d.ts +28 -0
- package/esm/tuple/tuple_plus.common_prop_keys.d.ts.map +1 -0
- package/esm/tuple/tuple_plus.common_prop_keys.js +2 -0
- package/esm/tuple/tuple_plus.common_prop_keys.js.map +1 -0
- package/esm/tuple/tuple_plus.d.ts +5 -1
- package/esm/tuple/tuple_plus.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.drop_match.d.ts +6 -0
- package/esm/tuple/tuple_plus.drop_match.d.ts.map +1 -0
- package/esm/tuple/tuple_plus.drop_match.js +2 -0
- package/esm/tuple/tuple_plus.drop_match.js.map +1 -0
- package/esm/tuple/tuple_plus.filter.d.ts +13 -0
- package/esm/tuple/tuple_plus.filter.d.ts.map +1 -0
- package/esm/tuple/tuple_plus.filter.js +2 -0
- package/esm/tuple/tuple_plus.filter.js.map +1 -0
- package/esm/tuple/tuple_plus.find.d.ts +64 -0
- package/esm/tuple/tuple_plus.find.d.ts.map +1 -0
- package/esm/tuple/tuple_plus.find.js +2 -0
- package/esm/tuple/tuple_plus.find.js.map +1 -0
- package/esm/tuple/tuple_plus.js +1 -1
- package/esm/tuple/tuple_plus.js.map +1 -1
- package/esm/tuple/tuple_plus.pad_start.d.ts +11 -5
- package/esm/tuple/tuple_plus.pad_start.d.ts.map +1 -1
- package/esm/tuple/tuple_type.d.ts +41 -23
- package/esm/tuple/tuple_type.d.ts.map +1 -1
- package/esm/union/union.d.ts +33 -0
- package/esm/union/union.d.ts.map +1 -0
- package/esm/union/union.js +2 -0
- package/esm/union/union.js.map +1 -0
- package/esm/unknown/unknown_type.d.ts +12 -0
- package/esm/unknown/unknown_type.d.ts.map +1 -1
- package/esm/utils/options.d.ts +10 -0
- package/esm/utils/options.d.ts.map +1 -0
- package/esm/utils/options.js +2 -0
- package/esm/utils/options.js.map +1 -0
- package/package.json +12 -9
- package/ts/any/any_type.ts +8 -9
- package/ts/any/readme.md +71 -4
- package/ts/array/array.at.ts +3 -1
- package/ts/array/array.entries.ts +4 -2
- package/ts/array/array.find_last.ts +3 -1
- package/ts/array/array.some.ts +1 -1
- package/ts/array/array_plus.common_prop_keys.ts +35 -0
- package/ts/array/{array.concat.ts → array_plus.concat.ts} +3 -0
- package/ts/array/array_plus.drop_match.ts +16 -0
- package/ts/array/array_plus.element_match.ts +61 -0
- package/ts/array/array_plus.filter.ts +5 -0
- package/ts/array/array_plus.find.ts +71 -0
- package/ts/array/array_plus.pad_start.ts +13 -0
- package/ts/array/array_plus.ts +7 -3
- package/ts/array/array_type.ts +30 -12
- package/ts/array/filter.ts +27 -22
- package/ts/array/find_first.ts +71 -0
- package/ts/array/head.ts +40 -1
- package/ts/array/intersect_of_props.ts +7 -3
- package/ts/array/last.ts +36 -2
- package/ts/array/literal_array.ts +5 -0
- package/ts/array/pad_start.ts +6 -10
- package/ts/array/readme.md +297 -32
- package/ts/array/reduce_while.ts +6 -0
- package/ts/array/reverse.ts +5 -0
- package/ts/array/union_of_props.ts +1 -1
- package/ts/assertion/assert_type.ts +4 -1
- package/ts/assertion/readme.md +4 -3
- package/ts/functional/compose.ts +2 -1
- package/ts/functional/context.ts +1 -1
- package/ts/index.ts +22 -3
- package/ts/math/numeric_struct.ts +9 -9
- package/ts/mix_types/any_or_never_type.ts +1 -1
- package/ts/mix_types/readme.md +7 -1
- package/ts/never/never_type.ts +13 -0
- package/ts/nodejs/isNodeError.ts +13 -13
- package/ts/nominal/brand.ts +1 -1
- package/ts/nominal/flavor.ts +1 -1
- package/ts/object/index.ts +0 -1
- package/ts/testing/readme.md +30 -0
- package/ts/testing/test_type.ts +279 -234
- package/ts/tuple/common_prop_keys.ts +41 -0
- package/ts/tuple/create_tuple.ts +9 -9
- package/ts/tuple/drop.ts +125 -0
- package/ts/tuple/readme.md +263 -9
- package/ts/{array → tuple}/tail.ts +1 -1
- package/ts/tuple/tuple_plus.common_prop_keys.ts +47 -0
- package/ts/tuple/tuple_plus.drop_match.ts +20 -0
- package/ts/tuple/tuple_plus.filter.ts +29 -0
- package/ts/tuple/tuple_plus.find.ts +88 -0
- package/ts/tuple/tuple_plus.pad_start.ts +37 -21
- package/ts/tuple/tuple_plus.ts +5 -1
- package/ts/tuple/tuple_type.ts +67 -25
- package/ts/union/readme.md +81 -0
- package/ts/union/union.ts +37 -0
- package/ts/unknown/unknown_type.ts +13 -0
- package/ts/utils/options.ts +10 -0
- package/cjs/array/array.concat.d.ts.map +0 -1
- package/cjs/array/array.concat.js.map +0 -1
- package/cjs/array/array.find.d.ts +0 -21
- package/cjs/array/array.find.d.ts.map +0 -1
- package/cjs/array/array.find.js.map +0 -1
- package/cjs/array/common_prop_keys.d.ts +0 -11
- package/cjs/array/common_prop_keys.d.ts.map +0 -1
- package/cjs/array/common_prop_keys.js.map +0 -1
- package/cjs/array/drop.d.ts +0 -19
- package/cjs/array/drop.d.ts.map +0 -1
- package/cjs/array/drop.js.map +0 -1
- package/cjs/array/index.d.ts +0 -17
- package/cjs/array/index.d.ts.map +0 -1
- package/cjs/array/index.js +0 -33
- package/cjs/array/index.js.map +0 -1
- package/esm/array/array.concat.d.ts.map +0 -1
- package/esm/array/array.concat.js +0 -2
- package/esm/array/array.concat.js.map +0 -1
- package/esm/array/array.find.d.ts +0 -21
- package/esm/array/array.find.d.ts.map +0 -1
- package/esm/array/array.find.js +0 -2
- package/esm/array/array.find.js.map +0 -1
- package/esm/array/common_prop_keys.d.ts +0 -11
- package/esm/array/common_prop_keys.d.ts.map +0 -1
- package/esm/array/common_prop_keys.js.map +0 -1
- package/esm/array/drop.d.ts +0 -19
- package/esm/array/drop.d.ts.map +0 -1
- package/esm/array/drop.js +0 -7
- package/esm/array/drop.js.map +0 -1
- package/esm/array/index.d.ts +0 -17
- package/esm/array/index.d.ts.map +0 -1
- package/esm/array/index.js +0 -17
- package/esm/array/index.js.map +0 -1
- package/ts/array/array.find.ts +0 -32
- package/ts/array/common_prop_keys.ts +0 -18
- package/ts/array/drop.ts +0 -71
- package/ts/array/index.ts +0 -16
- /package/cjs/{array → tuple}/common_prop_keys.js +0 -0
- /package/cjs/{array → tuple}/tail.js +0 -0
- /package/esm/{array → tuple}/common_prop_keys.js +0 -0
- /package/esm/{array → tuple}/tail.js +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { DropMatch as ArrayDropMatch } from '../array/array_plus.drop_match.js';
|
|
2
|
+
import type { DropMatch as TupleDropMatch } from './tuple_plus.drop_match.js';
|
|
3
|
+
/**
|
|
4
|
+
* ⚗️ *transform*
|
|
5
|
+
* 🔢 *customizable*
|
|
6
|
+
*
|
|
7
|
+
* Drops the first entry in the tuple `T`.
|
|
8
|
+
*
|
|
9
|
+
* If the type is an array, the same array will be returned.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* type R = DropFirst<[1, 2, 3]> // [2, 3]
|
|
14
|
+
* type R = DropFirst<[string]> // []
|
|
15
|
+
* type R = DropFirst<[]> // []
|
|
16
|
+
* type R = DropFirst<string[]> // string[]
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @typeParam Options['caseArray'] Return type when `T` is `Array`.
|
|
20
|
+
* Default to `T`.
|
|
21
|
+
*
|
|
22
|
+
* @typeParam Options['caseEmptyTuple'] Return type when `T` is an empty tuple.
|
|
23
|
+
* Default to `[]`.
|
|
24
|
+
*/
|
|
25
|
+
export type DropFirst<T extends unknown[], Options extends DropFirst.Options = DropFirst.DefaultOptions<T>> = number extends T['length'] ? Options['caseArray'] : T['length'] extends 0 ? Options['caseEmptyTuple'] : T['length'] extends 1 ? [] : T extends [any, ...infer Tail] ? Tail : never;
|
|
26
|
+
export declare namespace DropFirst {
|
|
27
|
+
interface Options {
|
|
28
|
+
caseArray?: unknown;
|
|
29
|
+
caseEmptyTuple?: unknown;
|
|
30
|
+
}
|
|
31
|
+
interface DefaultOptions<T> {
|
|
32
|
+
caseArray: T;
|
|
33
|
+
caseEmptyTuple: [];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* ⚗️ *transform*
|
|
38
|
+
* 🔢 *customizable*
|
|
39
|
+
*
|
|
40
|
+
* Drops the last entry in the tuple `T`.
|
|
41
|
+
*
|
|
42
|
+
* If the type is an array, the same array will be returned.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* type R = DropLast<[1, 2, 3]> // [2, 3]
|
|
47
|
+
* type R = DropLast<[string]> // []
|
|
48
|
+
* type R = DropLast<[]> // []
|
|
49
|
+
* type R = DropLast<string[]> // string[]
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @typeParam Options['caseArray'] Return type when `T` is `Array`.
|
|
53
|
+
* Default to `T`.
|
|
54
|
+
*
|
|
55
|
+
* @typeParam Options['caseEmptyTuple'] Return type when `T` is an empty tuple.
|
|
56
|
+
* Default to `[]`.
|
|
57
|
+
*/
|
|
58
|
+
export type DropLast<T extends unknown[], Cases extends DropLast.Options = DropLast.DefaultOptions<T>> = number extends T['length'] ? Cases['caseArray'] : T['length'] extends 0 ? Cases['caseEmptyTuple'] : T['length'] extends 1 ? [] : T extends [...infer Heads, any] ? Heads : never;
|
|
59
|
+
export declare namespace DropLast {
|
|
60
|
+
interface Options {
|
|
61
|
+
caseArray?: unknown;
|
|
62
|
+
caseEmptyTuple?: unknown;
|
|
63
|
+
}
|
|
64
|
+
interface DefaultOptions<T> {
|
|
65
|
+
caseArray: T;
|
|
66
|
+
caseEmptyTuple: [];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* ⚗️ *transform*
|
|
71
|
+
*
|
|
72
|
+
* Drops entries matching `Criteria` in array or tuple `A`.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* type R = DropMatch<Array<string | undefined>, undefined> // string[]
|
|
77
|
+
* type R = DropMatch<Array<string>, string> // never[]
|
|
78
|
+
* type R = DropMatch<Array<1 | 2>, number> // never[]
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export type DropMatch<A extends Readonly<Array<unknown>>, Criteria> = number extends A['length'] ? ArrayDropMatch<A, Criteria> : TupleDropMatch<A, Criteria>;
|
|
82
|
+
export type DropNull<A extends Array<any>> = DropMatch<A, null>;
|
|
83
|
+
export type DropNullable<A extends Array<any>> = DropMatch<A, null | undefined>;
|
|
84
|
+
export type DropUndefined<A extends Array<any>> = DropMatch<A, undefined>;
|
|
85
|
+
/**
|
|
86
|
+
* drop a particular value from an array.
|
|
87
|
+
*
|
|
88
|
+
* 💀 *deprecated* the type does not sufficiently cover the use cases.
|
|
89
|
+
*/
|
|
90
|
+
export declare function drop<A extends Readonly<unknown[]>, const C>(array: A, value: C): DropMatch<A, C>;
|
|
91
|
+
//# sourceMappingURL=drop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../ts/tuple/drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACpF,OAAO,KAAK,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,SAAS,CACpB,CAAC,SAAS,OAAO,EAAE,EACnB,OAAO,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAC5D,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAC3B,OAAO,CAAC,WAAW,CAAC,GACpB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,OAAO,CAAC,gBAAgB,CAAC,GACzB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,EAAE,GACF,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9B,IAAI,GACJ,KAAK,CAAA;AAER,yBAAiB,SAAS,CAAC;IAC1B,UAAiB,OAAO;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;KACzB;IACD,UAAiB,cAAc,CAAC,CAAC;QAChC,SAAS,EAAE,CAAC,CAAC;QACb,cAAc,EAAE,EAAE,CAAA;KAClB;CACD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,QAAQ,CACnB,CAAC,SAAS,OAAO,EAAE,EACnB,KAAK,SAAS,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IACxD,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAC3B,KAAK,CAAC,WAAW,CAAC,GAClB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,KAAK,CAAC,gBAAgB,CAAC,GACvB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACrB,EAAE,GACF,CAAC,SAAS,CAAC,GAAG,MAAM,KAAK,EAAE,GAAG,CAAC,GAC/B,KAAK,GACL,KAAK,CAAA;AAGR,yBAAiB,QAAQ,CAAC;IACzB,UAAiB,OAAO;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;KACzB;IACD,UAAiB,cAAc,CAAC,CAAC;QAChC,SAAS,EAAE,CAAC,CAAC;QACb,cAAc,EAAE,EAAE,CAAA;KAClB;CACD;AAGD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,IAAI,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAC7F,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,GAC3B,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;AAE9B,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAC/D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAAA;AAC/E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AAEzE;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAEhG"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.drop = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* drop a particular value from an array
|
|
5
|
+
* drop a particular value from an array.
|
|
6
|
+
*
|
|
7
|
+
* 💀 *deprecated* the type does not sufficiently cover the use cases.
|
|
6
8
|
*/
|
|
7
9
|
function drop(array, value) {
|
|
8
10
|
return array.filter(v => v !== value);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../ts/tuple/drop.ts"],"names":[],"mappings":";;;AAqHA;;;;GAIG;AACH,SAAgB,IAAI,CAAyC,KAAQ,EAAE,KAAQ;IAC9E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAoB,CAAA;AACzD,CAAC;AAFD,oBAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../ts/
|
|
1
|
+
{"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../ts/tuple/tail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtD,KAAK,GACL,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9B,IAAI,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,GAC9B,IAAI,GACJ,KAAK,GACN,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tail.js","sourceRoot":"","sources":["../../ts/
|
|
1
|
+
{"version":3,"file":"tail.js","sourceRoot":"","sources":["../../ts/tuple/tail.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { NeverType } from '../never/never_type.js';
|
|
2
|
+
import type { KeyTypes } from '../object/KeyTypes.js';
|
|
3
|
+
import type { Tail } from './tail.js';
|
|
4
|
+
/**
|
|
5
|
+
* ⚗️ *transform*
|
|
6
|
+
* 🔢 *customization*
|
|
7
|
+
*
|
|
8
|
+
* Gets the common property keys of the elements in tuple `T`.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { type TuplePlus } from 'type-plus'
|
|
13
|
+
*
|
|
14
|
+
* type R = TuplePlus.CommonPropKeys<[{ a: number }, { b: number }]> // never
|
|
15
|
+
* type R = TuplePlus.CommonPropKeys<[{ a: number, c: 1 }, { b: number, c: 2 }]> // 'c'
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @typeParam Options['caseNever'] Return type when `T` is `never`.
|
|
19
|
+
* Default to `never`.
|
|
20
|
+
*/
|
|
21
|
+
export type CommonPropKeys<T extends Record<KeyTypes, unknown>[], Options extends CommonPropKeys.Options = CommonPropKeys.DefaultOptions> = NeverType<T, Options['caseNever'], (T['length'] extends 0 ? never : (T['length'] extends 1 ? keyof T[0] : (T['length'] extends 2 ? keyof T[0] & keyof T[1] : keyof T[0] & keyof T[1] & CommonPropKeys<Tail<Tail<T>>>)))>;
|
|
22
|
+
export declare namespace CommonPropKeys {
|
|
23
|
+
interface Options extends NeverType.Options {
|
|
24
|
+
}
|
|
25
|
+
interface DefaultOptions extends NeverType.DefaultOptions {
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=tuple_plus.common_prop_keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.common_prop_keys.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.common_prop_keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,CACzB,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EACrC,OAAO,SAAS,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,cAAc,IACnE,SAAS,CACZ,CAAC,EACD,OAAO,CAAC,WAAW,CAAC,EACpB,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACnB,KAAK,GACL,CACD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACnB,MAAM,CAAC,CAAC,CAAC,CAAC,GACV,CACD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACnB,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GACvB,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACzD,CACD,CAAC,CACH,CAAA;AAED,yBAAiB,cAAc,CAAC;IAC/B,UAAiB,OAAQ,SAAQ,SAAS,CAAC,OAAO;KACjD;IAED,UAAiB,cAAe,SAAQ,SAAS,CAAC,cAAc;KAC/D;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.common_prop_keys.js","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.common_prop_keys.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type { CommonPropKeys } from './tuple_plus.common_prop_keys.js';
|
|
2
|
+
export type { DropMatch } from './tuple_plus.drop_match.js';
|
|
3
|
+
export type { Filter } from './tuple_plus.filter.js';
|
|
4
|
+
export type { Find } from './tuple_plus.find.js';
|
|
5
|
+
export type { PadStart } from './tuple_plus.pad_start.js';
|
|
2
6
|
//# sourceMappingURL=tuple_plus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple_plus.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"tuple_plus.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,YAAY,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACpD,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IsEqual } from '../equal/equal.js';
|
|
2
|
+
export type DropMatch<A extends Readonly<Array<unknown>>, Criteria> = A['length'] extends 0 ? A : A extends readonly [infer Head, ...infer Tail] ? Tail['length'] extends 0 ? undefined extends Criteria ? DropMatch.ExcludeUnionOfEmptyTuple<Head extends Criteria ? [] : [Head]> : DropMatch.ExcludeUnionOfEmptyTuple<Head extends Criteria ? [] : [Head]> : Exclude<Head, Criteria> extends never ? DropMatch<Tail, Criteria> : [Exclude<Head, Criteria>, ...DropMatch<Tail, Criteria>] : never[];
|
|
3
|
+
export declare namespace DropMatch {
|
|
4
|
+
type ExcludeUnionOfEmptyTuple<A> = IsEqual<A, []> extends true ? A : Exclude<A, []>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=tuple_plus.drop_match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.drop_match.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.drop_match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAE1F,CAAC,GACC,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAE1B,SAAS,SAAS,QAAQ,GACxB,SAAS,CAAC,wBAAwB,CAAC,IAAI,SAAS,QAAQ,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GACvE,SAAS,CAAC,wBAAwB,CAAC,IAAI,SAAS,QAAQ,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAEzE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,KAAK,GACnC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,GACzB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GACvD,KAAK,EAAE,CAAA;AAEV,yBAAiB,SAAS,CAAC;IAC1B,KAAY,wBAAwB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;CAC1F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.drop_match.js","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.drop_match.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⚗️ *transform*
|
|
3
|
+
*
|
|
4
|
+
* Filter entries matching `Criteria` in tuple `T`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* type R = Filter<[1, 2, '3'], number> // [1, 2]
|
|
9
|
+
* type R = Filter<[1, 2, '3'], true> // []
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export type Filter<T extends unknown[], Criteria> = T['length'] extends 0 ? [] : (T extends [infer Head, ...infer Tail] ? (Tail['length'] extends 0 ? (Head extends Criteria ? [Head] : []) : (Head extends Criteria ? [Head, ...Filter<Tail, Criteria>] : Filter<Tail, Criteria>)) : never);
|
|
13
|
+
//# sourceMappingURL=tuple_plus.filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.filter.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtE,EAAE,GACF,CACD,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACnC,CACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtB,CACD,IAAI,SAAS,QAAQ,GACnB,CAAC,IAAI,CAAC,GACN,EAAE,CAAC,GACJ,CACD,IAAI,SAAS,QAAQ,GACnB,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GACjC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CACxB,CACD,GACC,KAAK,CACP,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.filter.js","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.filter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { ElementMatch } from '../array/array_plus.element_match.js';
|
|
2
|
+
import type { NeverType } from '../never/never_type.js';
|
|
3
|
+
import type { MergeOptions } from '../utils/options.js';
|
|
4
|
+
import type { TupleType } from './tuple_type.js';
|
|
5
|
+
/**
|
|
6
|
+
* 🦴 *utilities*
|
|
7
|
+
* 🔢 *customizable*
|
|
8
|
+
*
|
|
9
|
+
* Find the first type in tuple `A` that matches `Criteria`.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* type R = TuplePlus.Find<[true, 1, 'x', 3], string> // 'x'
|
|
14
|
+
* type R = TuplePlus.Find<[true, 1, 'x', 3], number> // 1
|
|
15
|
+
* type R = TuplePlus.Find<[string, number, 1], 1> // widen: 1 | undefined
|
|
16
|
+
* type R = TuplePlus.Find<[true, number | string], string> // unionMiss: string | undefined
|
|
17
|
+
*
|
|
18
|
+
* type R = TuplePlus.Find<[true, 1, 'x'], 2> // never
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @typeParam Options['widen'] performs widen match.
|
|
22
|
+
* Default to `true`.
|
|
23
|
+
* With widen match, a narrowed type will match its widen type.
|
|
24
|
+
* e.g. matching `1` against `number` yields `1 | undefined`
|
|
25
|
+
*
|
|
26
|
+
* The widen behavior can be customized by `Options['caseWiden']`
|
|
27
|
+
*
|
|
28
|
+
* @typeParam Options['caseArray'] return type when `A` is an array. Default to `not supported` message.
|
|
29
|
+
*
|
|
30
|
+
* @typeParam Options['caseEmptyTuple'] return type when `A` is an empty tuple.
|
|
31
|
+
* Default to `never`.
|
|
32
|
+
*
|
|
33
|
+
* @typeParam Options['caseNever'] return type when `A` is `never`. Default to `never`.
|
|
34
|
+
*
|
|
35
|
+
* @typeParam Options['caseNotMatch'] Return value when `T` does not match `Criteria`.
|
|
36
|
+
* Default to `never`.
|
|
37
|
+
*
|
|
38
|
+
* @typeParam Options['caseWiden'] return type when `T` in `A` is a widen type of `Criteria`.
|
|
39
|
+
* Default to `Criteria | undefined`.
|
|
40
|
+
* Set it to `never` for a more type-centric behavior
|
|
41
|
+
*
|
|
42
|
+
* @typeParam Options['caseUnionNotMatch'] Return value when a branch of the union `T` does not match `Criteria`.
|
|
43
|
+
* Default to `never`.
|
|
44
|
+
*
|
|
45
|
+
* If you want the type to behave more like JavaScript,
|
|
46
|
+
* you can override it to return `undefined`.
|
|
47
|
+
*
|
|
48
|
+
* Since it is a union, the result will be joined to the matched branch as union.
|
|
49
|
+
*/
|
|
50
|
+
export type Find<A extends unknown[], Criteria, Options extends Find.Options = Find.DefaultOptions<Criteria>> = MergeOptions<Options, Find.DefaultOptions<Criteria>> extends infer O extends Find.Options ? TupleType<A, A['length'] extends 0 ? O['caseEmptyTuple'] : Find.Device<A, Criteria, O>, O['caseArray'], O> : never;
|
|
51
|
+
export declare namespace Find {
|
|
52
|
+
type Device<A extends unknown[], Criteria, Options extends Find.Options> = A['length'] extends 0 ? Options['caseNotMatch'] : (A extends [infer Head, ...infer Tail] ? ElementMatch<Head, Criteria, MergeOptions<{
|
|
53
|
+
caseNotMatch: Device<Tail, Criteria, Options>;
|
|
54
|
+
}, Options>> : never);
|
|
55
|
+
interface Options extends ElementMatch.Options, NeverType.Options {
|
|
56
|
+
caseArray?: unknown;
|
|
57
|
+
caseEmptyTuple?: unknown;
|
|
58
|
+
}
|
|
59
|
+
interface DefaultOptions<Criteria> extends ElementMatch.DefaultOptions<Criteria>, NeverType.DefaultOptions {
|
|
60
|
+
caseArray: 'does not support array. Please use `FindFirst` or `ArrayPlus.Find` instead.';
|
|
61
|
+
caseEmptyTuple: never;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=tuple_plus.find.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.find.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,MAAM,IAAI,CACf,CAAC,SAAS,OAAO,EAAE,EACnB,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IACzD,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,SAAS,IAAI,CAAC,OAAO,GAC1F,SAAS,CACV,CAAC,EACD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACnB,CAAC,CAAC,gBAAgB,CAAC,GACnB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAC7B,CAAC,CAAC,WAAW,CAAC,EACd,CAAC,CACD,GACC,KAAK,CAAA;AACR,yBAAiB,IAAI,CAAC;IACrB,KAAY,MAAM,CACjB,CAAC,SAAS,OAAO,EAAE,EACnB,QAAQ,EACR,OAAO,SAAS,IAAI,CAAC,OAAO,IACzB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtB,OAAO,CAAC,cAAc,CAAC,GACvB,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACrC,YAAY,CACb,IAAI,EACJ,QAAQ,EACR,YAAY,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,OAAO,CAAC,CACxE,GACC,KAAK,CAAC,CAAA;IACV,UAAiB,OAAQ,SAAQ,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO;QACvE,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,OAAO,CAAC;KACzB;IAED,UAAiB,cAAc,CAAC,QAAQ,CAAE,SAAQ,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,cAAc;QAChH,SAAS,EAAE,6EAA6E,CAAC;QACzF,cAAc,EAAE,KAAK,CAAC;KACtB;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple_plus.find.js","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.find.ts"],"names":[],"mappings":""}
|
package/cjs/tuple/tuple_plus.js
CHANGED
|
@@ -1,18 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./tuple_plus.pad_start.js"), exports);
|
|
18
3
|
//# sourceMappingURL=tuple_plus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple_plus.js","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tuple_plus.js","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Pad `T` with `PadWith` at the start of the tuple.
|
|
3
3
|
*
|
|
4
4
|
* If the `MaxLength` is less than the length of the tuple,
|
|
5
5
|
* the `Tuple` will be returned unchanged.
|
|
6
6
|
*
|
|
7
|
+
* ⚗️ *transform*
|
|
8
|
+
*
|
|
7
9
|
* @example
|
|
8
10
|
* ```ts
|
|
9
11
|
* PadStart<[1, 2, 3], 5, 0> // [0, 0, 1, 2, 3]
|
|
10
12
|
*
|
|
11
13
|
* // Ignore if MaxLength is less than the length of the tuple
|
|
12
|
-
* PadStart<[1, 2, 3],
|
|
14
|
+
* PadStart<[1, 2, 3], 2> // [1, 2, 3]
|
|
13
15
|
*
|
|
14
16
|
* // Default to unknown
|
|
15
17
|
* PadStart<[1, 2, 3], 5> // [unknown, unknown, 1, 2, 3]
|
|
16
18
|
* ```
|
|
17
19
|
*/
|
|
18
|
-
export type PadStart<Tuple extends unknown[], MaxLength extends number, PadWith = unknown> =
|
|
20
|
+
export type PadStart<Tuple extends unknown[], MaxLength extends number, PadWith = unknown> = PadStart.Device<Tuple, MaxLength, PadWith, [
|
|
19
21
|
]>;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
export declare namespace PadStart {
|
|
23
|
+
type Device<Source extends unknown[], MaxLength extends number, PadWith, Result extends unknown[]> = Result['length'] extends MaxLength ? (Source extends [] ? Result : (Source extends [...infer Head, infer Tail] ? ([
|
|
24
|
+
Tail,
|
|
25
|
+
...Result
|
|
26
|
+
] extends infer R extends unknown[] ? Device<Head, R['length'], PadWith, R> : never) : never)) : (Source extends [] ? Device<Source, MaxLength, PadWith, [PadWith, ...Result]> : (Source extends [...infer Head, infer Tail] ? Device<Head, MaxLength, PadWith, [Tail, ...Result]> : Source));
|
|
27
|
+
}
|
|
22
28
|
//# sourceMappingURL=tuple_plus.pad_start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple_plus.pad_start.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.pad_start.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tuple_plus.pad_start.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_plus.pad_start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,SAAS,SAAS,MAAM,EAAE,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAC3G,KAAK,EACL,SAAS,EACT,OAAO,EACP;CAAE,CACF,CAAA;AAED,yBAAiB,QAAQ,CAAC;IACzB,KAAY,MAAM,CACjB,MAAM,SAAS,OAAO,EAAE,EACxB,SAAS,SAAS,MAAM,EACxB,OAAO,EACP,MAAM,SAAS,OAAO,EAAE,IAExB,MAAM,CAAC,QAAQ,CAAC,SAAS,SAAS,GAChC,CACD,MAAM,SAAS,EAAE,GACf,MAAM,GACN,CACD,MAAM,SAAS,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM,IAAI,CAAC,GACxC,CACD;QAAC,IAAI;QAAE,GAAG,MAAM;KAAC,SAAS,MAAM,CAAC,SAAS,OAAO,EAAE,GACjD,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GACrC,KAAK,CACP,GACC,KAAK,CACP,CACD,GACC,CACD,MAAM,SAAS,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,GACxD,CACD,MAAM,SAAS,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM,IAAI,CAAC,GACxC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GACnD,MAAM,CACR,CACD,CAAA;CAEF"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import type { IsNever } from '../never/never_type.js';
|
|
1
|
+
import type { IsNever, NeverType } from '../never/never_type.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* 🌪️ *filter*
|
|
4
4
|
*
|
|
5
|
+
* Filter `T` to ensure it is a tuple, excluding array.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam Cases['never'] Return type when `T` is `never`. Default to `Else`.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
5
10
|
* ```ts
|
|
6
11
|
* type R = TupleType<[]> // []
|
|
7
12
|
* type R = TupleType<[1]> // [1]
|
|
@@ -12,11 +17,35 @@ import type { IsNever } from '../never/never_type.js';
|
|
|
12
17
|
* type R = TupleType<unknown> // never
|
|
13
18
|
* ```
|
|
14
19
|
*/
|
|
15
|
-
export type TupleType<T, Then = T, Else = never
|
|
20
|
+
export type TupleType<T, Then = T, Else = never, Options extends TupleType.Options = TupleType.DefaultOptions<Else>> = IsNever<T, Options['caseNever'], [
|
|
16
21
|
T
|
|
17
22
|
] extends [any[]] ? (number extends T['length'] ? Else : Then) : Else>;
|
|
23
|
+
export declare namespace TupleType {
|
|
24
|
+
interface Options extends NeverType.Options {
|
|
25
|
+
}
|
|
26
|
+
interface DefaultOptions<Else> {
|
|
27
|
+
caseNever: Else;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
18
30
|
/**
|
|
19
|
-
*
|
|
31
|
+
* 🎭 *validate*
|
|
32
|
+
*
|
|
33
|
+
* Validate that `T` is a tuple, excluding array.
|
|
34
|
+
*
|
|
35
|
+
* ```ts
|
|
36
|
+
* type R = IsTuple<[]> // true
|
|
37
|
+
*
|
|
38
|
+
* type R = IsTuple<number[]> // false
|
|
39
|
+
* type R = IsTuple<string> // false
|
|
40
|
+
* type R = IsTuple<never> // false
|
|
41
|
+
* type R = IsTuple<unknown> // false
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export type IsTuple<T, Then = true, Else = false, Options extends TupleType.Options = TupleType.DefaultOptions<Else>> = TupleType<T, Then, Else, Options>;
|
|
45
|
+
/**
|
|
46
|
+
* 🌪️ *filter*
|
|
47
|
+
*
|
|
48
|
+
* Filter `T` to ensure it is not an tuple, excluding array.
|
|
20
49
|
*
|
|
21
50
|
* ```ts
|
|
22
51
|
* type R = NotTupleType<[]> // never
|
|
@@ -28,32 +57,21 @@ export type TupleType<T, Then = T, Else = never> = IsNever<T, Else, [
|
|
|
28
57
|
* type R = NotTupleType<unknown> // unknown
|
|
29
58
|
* ```
|
|
30
59
|
*/
|
|
31
|
-
export type NotTupleType<T, Then = T, Else = never
|
|
60
|
+
export type NotTupleType<T, Then = T, Else = never, Options extends TupleType.Options = TupleType.DefaultOptions<Then>> = TupleType<T, Else, Then, Options>;
|
|
32
61
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* ```ts
|
|
36
|
-
* type R = IsTuple<[]> // true
|
|
62
|
+
* 🎭 *validate*
|
|
37
63
|
*
|
|
38
|
-
*
|
|
39
|
-
* type R = IsTuple<string> // false
|
|
40
|
-
* type R = IsTuple<never> // false
|
|
41
|
-
* type R = IsTuple<unknown> // false
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export type IsTuple<T, Then = true, Else = false> = TupleType<T, Then, Else>;
|
|
45
|
-
/**
|
|
46
|
-
* Is `T` not a tuple.
|
|
64
|
+
* Validate that `T` is not a tuple, excluding array.
|
|
47
65
|
*
|
|
48
66
|
* ```ts
|
|
49
67
|
* type R = IsNotTuple<[]> // false
|
|
50
68
|
* type R = IsNotTuple<[1]> // false
|
|
51
69
|
*
|
|
52
|
-
* type R = IsNotTuple<number[]> //
|
|
53
|
-
* type R = IsNotTuple<string> //
|
|
54
|
-
* type R = IsNotTuple<never> //
|
|
55
|
-
* type R = IsNotTuple<unknown> //
|
|
70
|
+
* type R = IsNotTuple<number[]> // true
|
|
71
|
+
* type R = IsNotTuple<string> // true
|
|
72
|
+
* type R = IsNotTuple<never> // true
|
|
73
|
+
* type R = IsNotTuple<unknown> // true
|
|
56
74
|
* ```
|
|
57
75
|
*/
|
|
58
|
-
export type IsNotTuple<T, Then = true, Else = false
|
|
76
|
+
export type IsNotTuple<T, Then = true, Else = false, Options extends TupleType.Options = TupleType.DefaultOptions<Then>> = TupleType<T, Else, Then, Options>;
|
|
59
77
|
//# sourceMappingURL=tuple_type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple_type.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"tuple_type.d.ts","sourceRoot":"","sources":["../../ts/tuple/tuple_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEhE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,SAAS,CACpB,CAAC,EACD,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,KAAK,EACZ,OAAO,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAC/D,OAAO,CACV,CAAC,EACD,OAAO,CAAC,WAAW,CAAC,EACpB;IAAC,CAAC;CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CACvE,CAAA;AAED,yBAAiB,SAAS,CAAC;IAC1B,UAAiB,OAAQ,SAAQ,SAAS,CAAC,OAAO;KACjD;IAED,UAAiB,cAAc,CAAC,IAAI;QACnC,SAAS,EAAE,IAAI,CAAA;KACf;CACD;AAGD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,CAClB,CAAC,EACD,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,EACZ,OAAO,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAC/D,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAGrC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,CACvB,CAAC,EACD,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,KAAK,EACZ,OAAO,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAC/D,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAErC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,UAAU,CACrB,CAAC,EACD,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,EACZ,OAAO,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAC/D,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🌪️ *filter*
|
|
3
|
+
*
|
|
4
|
+
* Filter the type `T` to ensure it is a union.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* type R = IsUnion<'a' | 'b'> // 'a' | 'b'
|
|
9
|
+
* type R = IsUnion<boolean> // boolean
|
|
10
|
+
* type R = IsUnion<number> // never
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export type UnionType<T, Then = T, Else = never> = UnionType.Device<T, Then, Else>;
|
|
14
|
+
/**
|
|
15
|
+
* 🎭 *validate*
|
|
16
|
+
*
|
|
17
|
+
* Validate the type `T` is a union.
|
|
18
|
+
*
|
|
19
|
+
* @author Nurbol Alpysbayev
|
|
20
|
+
* @see https://stackoverflow.com/questions/53953814/typescript-check-if-a-type-is-a-union
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* type R = IsUnion<'a' | 'b'> // true
|
|
25
|
+
* type R = IsUnion<boolean> // true
|
|
26
|
+
* type R = IsUnion<number> // false
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export type IsUnion<T, Then = true, Else = false> = UnionType.Device<T, Then, Else>;
|
|
30
|
+
export declare namespace UnionType {
|
|
31
|
+
type Device<T, Then, Else, U = T> = (T extends unknown ? (U extends T ? 1 : 2) : never) extends 1 ? Else : Then;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=union.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../ts/union/union.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAElF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEnF,yBAAiB,SAAS,CAAC;IAC1B,KAAY,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,IACtC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAC3D,IAAI,GACJ,IAAI,CAAA;CACP"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../ts/union/union.ts"],"names":[],"mappings":""}
|
|
@@ -48,4 +48,16 @@ export type NotUnknownType<T, Then = T, Else = never> = UnknownType<T, Else, The
|
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
50
|
export type IsNotUnknown<T, Then = true, Else = false> = UnknownType<T, Else, Then>;
|
|
51
|
+
/**
|
|
52
|
+
* 🌪️ *filter*
|
|
53
|
+
*
|
|
54
|
+
* Returns `T` if `T` is not `unknown`, otherwise `Else`.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* type R = NotUnknownOr<number, string> // number
|
|
59
|
+
* type R = NotUnknownOr<unknown, number> // number
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export type NotUnknownOr<T, Else> = UnknownType<T, Else, T>;
|
|
51
63
|
//# sourceMappingURL=unknown_type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown_type.d.ts","sourceRoot":"","sources":["../../ts/unknown/unknown_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACzD,CAAC,EACD,IAAI,EACJ;IAAC,CAAC;IAAE,OAAO;CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAC/C,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAElF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"unknown_type.d.ts","sourceRoot":"","sources":["../../ts/unknown/unknown_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CACzD,CAAC,EACD,IAAI,EACJ;IAAC,CAAC;IAAE,OAAO;CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAC/C,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAElF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAEnF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../ts/utils/options.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../ts/utils/options.ts"],"names":[],"mappings":""}
|