type-plus 8.0.0-beta.2 → 8.0.0-beta.3
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/esm/any/is_any.d.ts.map +1 -1
- package/esm/any/is_not_any.d.ts.map +1 -1
- package/esm/array/array.at.d.ts.map +1 -1
- package/esm/array/array.entries.d.ts +1 -1
- package/esm/array/array.entries.d.ts.map +1 -1
- package/esm/array/array.find_last.d.ts +1 -1
- package/esm/array/array.find_last.d.ts.map +1 -1
- package/esm/array/array.reverse.d.ts.map +1 -1
- package/esm/array/array.some.d.ts +2 -2
- package/esm/array/array.some.d.ts.map +1 -1
- package/esm/array/array_plus.common_prop_keys.d.ts.map +1 -1
- package/esm/array/array_plus.drop_match.d.ts +1 -1
- package/esm/array/array_plus.drop_match.d.ts.map +1 -1
- package/esm/array/array_plus.element_match.d.ts +4 -2
- package/esm/array/array_plus.element_match.d.ts.map +1 -1
- package/esm/array/array_plus.filter.d.ts +4 -4
- package/esm/array/array_plus.filter.d.ts.map +1 -1
- package/esm/array/array_plus.find.d.ts +1 -1
- package/esm/array/array_plus.find.d.ts.map +1 -1
- package/esm/array/array_plus.index_at.d.ts.map +1 -1
- package/esm/array/array_plus.index_at.js.map +1 -1
- package/esm/array/array_plus.is_index_out_of_bound.d.ts.map +1 -1
- package/esm/array/array_plus.is_readonly.d.ts.map +1 -1
- package/esm/array/array_plus.pad_start.d.ts.map +1 -1
- package/esm/array/array_plus.split_at.d.ts +4 -4
- package/esm/array/array_plus.split_at.d.ts.map +1 -1
- package/esm/array/find_first.d.ts.map +1 -1
- package/esm/array/head.d.ts.map +1 -1
- package/esm/array/intersect_of_props.d.ts.map +1 -1
- package/esm/array/is_array.d.ts +2 -2
- package/esm/array/is_array.d.ts.map +1 -1
- package/esm/array/is_not_array.d.ts +2 -2
- package/esm/array/is_not_array.d.ts.map +1 -1
- package/esm/array/last.d.ts.map +1 -1
- package/esm/array/loose_array_type.d.ts.map +1 -1
- package/esm/array/pad_start.d.ts.map +1 -1
- package/esm/array/reverse.d.ts.map +1 -1
- package/esm/array/union_of_props.d.ts.map +1 -1
- package/esm/assertion/assert_type.js +6 -5
- package/esm/assertion/assert_type.js.map +1 -1
- package/esm/bigint/cast.d.ts.map +1 -1
- package/esm/bigint/is_bigint.d.ts +2 -4
- package/esm/bigint/is_bigint.d.ts.map +1 -1
- package/esm/bigint/is_bigint_literal.d.ts +2 -4
- package/esm/bigint/is_bigint_literal.d.ts.map +1 -1
- package/esm/bigint/is_not_bigint.d.ts +2 -4
- package/esm/bigint/is_not_bigint.d.ts.map +1 -1
- package/esm/bigint/is_not_bigint_literal.d.ts +2 -4
- package/esm/bigint/is_not_bigint_literal.d.ts.map +1 -1
- package/esm/boolean/is_boolean.d.ts +2 -8
- package/esm/boolean/is_boolean.d.ts.map +1 -1
- package/esm/boolean/is_false.d.ts.map +1 -1
- package/esm/boolean/is_not_boolean.d.ts +2 -8
- package/esm/boolean/is_not_boolean.d.ts.map +1 -1
- package/esm/boolean/is_not_false.d.ts.map +1 -1
- package/esm/boolean/is_not_true.d.ts.map +1 -1
- package/esm/boolean/is_true.d.ts.map +1 -1
- package/esm/class/isConstructor.js +1 -0
- package/esm/class/isConstructor.js.map +1 -1
- package/esm/equal/equal.d.ts.map +1 -1
- package/esm/equal/identity_equal.d.ts +1 -1
- package/esm/equal/identity_equal.d.ts.map +1 -1
- package/esm/function/extract_function.d.ts.map +1 -1
- package/esm/function/extract_function.js.map +1 -1
- package/esm/function/is_not_strict_function.d.ts +1 -1
- package/esm/function/is_not_strict_function.d.ts.map +1 -1
- package/esm/function/is_strict_function.d.ts.map +1 -1
- package/esm/functional/Maybe.d.ts.map +1 -1
- package/esm/functional/Maybe.js.map +1 -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/math/abs.d.ts.map +1 -1
- package/esm/math/math_plus.to_negative.d.ts.map +1 -1
- package/esm/math/max.d.ts.map +1 -1
- package/esm/math/numeric_struct.d.ts.map +1 -1
- package/esm/mix_types/box.d.ts.map +1 -1
- package/esm/mix_types/is_any_or_never.d.ts.map +1 -1
- package/esm/mix_types/merge.d.ts +9 -9
- package/esm/mix_types/merge.d.ts.map +1 -1
- package/esm/mix_types/merge.js +9 -9
- package/esm/mix_types/merge.js.map +1 -1
- package/esm/never/is_never.d.ts.map +1 -1
- package/esm/never/is_not_never.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/brand.js +1 -1
- package/esm/nominal/brand.js.map +1 -1
- package/esm/nominal/flavor.d.ts.map +1 -1
- package/esm/nominal/flavor.js +1 -1
- package/esm/nominal/flavor.js.map +1 -1
- package/esm/nominal/nominal_match.d.ts.map +1 -1
- package/esm/nominal/nominal_match.js.map +1 -1
- package/esm/null/is_not_null.d.ts.map +1 -1
- package/esm/null/is_null.d.ts.map +1 -1
- package/esm/number/cast.d.ts.map +1 -1
- package/esm/number/is_not_number.d.ts +2 -4
- package/esm/number/is_not_number.d.ts.map +1 -1
- package/esm/number/is_not_number_literal.d.ts +2 -4
- package/esm/number/is_not_number_literal.d.ts.map +1 -1
- package/esm/number/is_number.d.ts +2 -4
- package/esm/number/is_number.d.ts.map +1 -1
- package/esm/number/is_number_literal.d.ts +2 -4
- package/esm/number/is_number_literal.d.ts.map +1 -1
- package/esm/numeric/is_integer.d.ts +2 -2
- package/esm/numeric/is_integer.d.ts.map +1 -1
- package/esm/numeric/is_negative.d.ts +5 -5
- package/esm/numeric/is_negative.d.ts.map +1 -1
- package/esm/numeric/is_not_integer.d.ts +2 -2
- package/esm/numeric/is_not_integer.d.ts.map +1 -1
- package/esm/numeric/is_not_negative.d.ts +3 -3
- package/esm/numeric/is_not_negative.d.ts.map +1 -1
- package/esm/numeric/is_not_positive.d.ts +3 -3
- package/esm/numeric/is_not_positive.d.ts.map +1 -1
- package/esm/numeric/is_positive.d.ts +3 -3
- package/esm/numeric/is_positive.d.ts.map +1 -1
- package/esm/numeric/numeric_type.d.ts.map +1 -1
- package/esm/object/ANotB.d.ts.map +1 -1
- package/esm/object/IsDisjoint.d.ts.map +1 -1
- package/esm/object/KeysWithDiffType.d.ts.map +1 -1
- package/esm/object/KnownKeys.d.ts.map +1 -1
- package/esm/object/RecursiveIntersect.d.ts +1 -1
- package/esm/object/RecursiveIntersect.d.ts.map +1 -1
- package/esm/object/RecursiveRequired.d.ts.map +1 -1
- package/esm/object/SpreadRecord.d.ts.map +1 -1
- package/esm/object/facade.d.ts.map +1 -1
- package/esm/object/facade.js.map +1 -1
- package/esm/object/getField.d.ts.map +1 -1
- package/esm/object/getField.js.map +1 -1
- package/esm/object/hasKey.js +1 -1
- package/esm/object/hasKey.js.map +1 -1
- package/esm/object/is_not_object.d.ts +1 -3
- package/esm/object/is_not_object.d.ts.map +1 -1
- package/esm/object/is_object.d.ts.map +1 -1
- package/esm/object/left_join.d.ts.map +1 -1
- package/esm/object/merge.d.ts +6 -5
- package/esm/object/merge.d.ts.map +1 -1
- package/esm/object/omit.d.ts +7 -0
- package/esm/object/omit.d.ts.map +1 -1
- package/esm/object/omit.js.map +1 -1
- package/esm/object/optional_key.d.ts.map +1 -1
- package/esm/object/pick.d.ts.map +1 -1
- package/esm/object/pick.js.map +1 -1
- package/esm/object/recursive_partial.d.ts.map +1 -1
- package/esm/object/split.d.ts +1 -7
- package/esm/object/split.d.ts.map +1 -1
- package/esm/object/split.js +1 -1
- package/esm/object/split.js.map +1 -1
- package/esm/object/typeOverrideIncompatible.js.map +1 -1
- package/esm/predicates/CanAssign.d.ts.map +1 -1
- package/esm/predicates/CanAssign.js.map +1 -1
- package/esm/predicates/assignable.d.ts.map +1 -1
- package/esm/predicates/literal.d.ts.map +1 -1
- package/esm/predicates/logical.d.ts.map +1 -1
- package/esm/predicates/not_assignable.d.ts.map +1 -1
- package/esm/primitive.d.ts.map +1 -1
- package/esm/promise/index.d.ts.map +1 -1
- package/esm/promise/mapSeries.js +1 -1
- package/esm/promise/mapSeries.js.map +1 -1
- package/esm/string/$extract_manipulated_string.d.ts +5 -5
- package/esm/string/$extract_manipulated_string.d.ts.map +1 -1
- package/esm/string/_string_type.d.ts.map +1 -1
- package/esm/string/is_not_string.d.ts +2 -4
- package/esm/string/is_not_string.d.ts.map +1 -1
- package/esm/string/is_not_string_literal.d.ts +4 -8
- package/esm/string/is_not_string_literal.d.ts.map +1 -1
- package/esm/string/is_not_template_literal.d.ts.map +1 -1
- package/esm/string/is_string.d.ts +2 -4
- package/esm/string/is_string.d.ts.map +1 -1
- package/esm/string/is_string_literal.d.ts +4 -8
- package/esm/string/is_string_literal.d.ts.map +1 -1
- package/esm/string/is_template_literal.d.ts.map +1 -1
- package/esm/string/string.d.ts.map +1 -1
- package/esm/string/string_plus.d.ts.map +1 -1
- package/esm/symbol/is_not_symbol.d.ts.map +1 -1
- package/esm/symbol/is_symbol.d.ts.map +1 -1
- package/esm/testing/test_type.d.ts.map +1 -1
- package/esm/tuple/common_prop_keys.d.ts.map +1 -1
- package/esm/tuple/create_tuple.d.ts.map +1 -1
- package/esm/tuple/drop.d.ts.map +1 -1
- package/esm/tuple/drop.js +1 -1
- package/esm/tuple/drop.js.map +1 -1
- package/esm/tuple/is_not_tuple.d.ts +2 -2
- package/esm/tuple/is_not_tuple.d.ts.map +1 -1
- package/esm/tuple/is_tuple.d.ts +2 -2
- package/esm/tuple/is_tuple.d.ts.map +1 -1
- package/esm/tuple/tail.d.ts +1 -1
- package/esm/tuple/tail.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.common_prop_keys.d.ts +1 -1
- package/esm/tuple/tuple_plus.common_prop_keys.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.drop_match.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.filter.d.ts +1 -1
- package/esm/tuple/tuple_plus.filter.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.find.d.ts +2 -2
- package/esm/tuple/tuple_plus.find.d.ts.map +1 -1
- package/esm/tuple/tuple_plus.pad_start.d.ts +1 -4
- package/esm/tuple/tuple_plus.pad_start.d.ts.map +1 -1
- package/esm/type_plus/$equality.d.ts.map +1 -1
- package/esm/type_plus/$infer_error.d.ts.map +1 -1
- package/esm/type_plus/$merge_options.d.ts.map +1 -1
- package/esm/type_plus/$resolve_options.d.ts +1 -1
- package/esm/type_plus/$resolve_options.d.ts.map +1 -1
- package/esm/type_plus/$special_type.d.ts +1 -7
- package/esm/type_plus/$special_type.d.ts.map +1 -1
- package/esm/type_plus/$type.d.ts.map +1 -1
- package/esm/type_plus/branch/$branch.d.ts.map +1 -1
- package/esm/type_plus/branch/$exact.d.ts +4 -1
- package/esm/type_plus/branch/$exact.d.ts.map +1 -1
- package/esm/type_plus/branch/$input_options.d.ts.map +1 -1
- package/esm/type_plus/branch/$is_distributive.d.ts.map +1 -1
- package/esm/type_plus/branch/$resolve_branch.d.ts +8 -9
- package/esm/type_plus/branch/$resolve_branch.d.ts.map +1 -1
- package/esm/type_plus/branch/$select.d.ts +1 -3
- package/esm/type_plus/branch/$select.d.ts.map +1 -1
- package/esm/type_plus/branch/$select_invert.d.ts +1 -3
- package/esm/type_plus/branch/$select_invert.d.ts.map +1 -1
- package/esm/type_plus/branch/$select_invert_strict.d.ts +1 -4
- package/esm/type_plus/branch/$select_invert_strict.d.ts.map +1 -1
- package/esm/type_plus/branch/$select_strict.d.ts +1 -4
- package/esm/type_plus/branch/$select_strict.d.ts.map +1 -1
- package/esm/type_plus/branch/$selection.d.ts.map +1 -1
- package/esm/type_plus/branch/$selection_options.d.ts.map +1 -1
- package/esm/undefined/has_undefined.d.ts +3 -1
- package/esm/undefined/has_undefined.d.ts.map +1 -1
- package/esm/undefined/is_not_undefined.d.ts.map +1 -1
- package/esm/undefined/is_undefined.d.ts.map +1 -1
- package/esm/union/union.d.ts.map +1 -1
- package/esm/union/union_to_intersection.d.ts.map +1 -1
- package/esm/union/union_to_intersection.js.map +1 -1
- package/esm/unknown/is_not_unknown.d.ts.map +1 -1
- package/esm/unknown/is_unknown.d.ts.map +1 -1
- package/esm/unknown/not_unknown_or.d.ts.map +1 -1
- package/esm/unknown/unknown.d.ts.map +1 -1
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/void/is_not_void.d.ts.map +1 -1
- package/esm/void/is_void.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/any/is_any.ts +8 -8
- package/src/any/is_not_any.ts +8 -8
- package/src/array/array.at.ts +22 -19
- package/src/array/array.entries.ts +3 -3
- package/src/array/array.find_last.ts +6 -6
- package/src/array/array.reverse.ts +3 -2
- package/src/array/array.some.ts +4 -4
- package/src/array/array_plus.common_prop_keys.ts +5 -6
- package/src/array/array_plus.drop_match.ts +7 -7
- package/src/array/array_plus.element_match.ts +25 -22
- package/src/array/array_plus.filter.ts +11 -12
- package/src/array/array_plus.find.ts +9 -11
- package/src/array/array_plus.index_at.ts +29 -35
- package/src/array/array_plus.is_index_out_of_bound.ts +1 -1
- package/src/array/array_plus.is_readonly.ts +17 -21
- package/src/array/array_plus.pad_start.ts +3 -7
- package/src/array/array_plus.split_at.ts +17 -19
- package/src/array/find_first.ts +6 -5
- package/src/array/head.ts +9 -8
- package/src/array/intersect_of_props.ts +5 -5
- package/src/array/is_array.ts +31 -32
- package/src/array/is_not_array.ts +32 -32
- package/src/array/last.ts +14 -9
- package/src/array/loose_array_type.ts +2 -2
- package/src/array/pad_start.ts +1 -3
- package/src/array/reverse.ts +8 -8
- package/src/array/union_of_props.ts +2 -2
- package/src/assertion/assert_type.ts +5 -3
- package/src/bigint/cast.ts +2 -2
- package/src/bigint/is_bigint.ts +17 -20
- package/src/bigint/is_bigint_literal.ts +12 -14
- package/src/bigint/is_not_bigint.ts +14 -16
- package/src/bigint/is_not_bigint_literal.ts +17 -16
- package/src/boolean/is_boolean.ts +48 -36
- package/src/boolean/is_false.ts +5 -3
- package/src/boolean/is_not_boolean.ts +23 -25
- package/src/boolean/is_not_false.ts +5 -3
- package/src/boolean/is_not_true.ts +5 -3
- package/src/boolean/is_true.ts +5 -3
- package/src/class/isConstructor.ts +1 -1
- package/src/equal/equal.ts +22 -27
- package/src/equal/identity_equal.ts +5 -3
- package/src/function/extract_function.ts +1 -3
- package/src/function/is_not_strict_function.ts +12 -12
- package/src/function/is_strict_function.ts +12 -14
- package/src/functional/Maybe.ts +1 -3
- package/src/functional/compose.ts +2 -4
- package/src/functional/context.ts +1 -1
- package/src/index.ts +0 -1
- package/src/math/abs.ts +18 -8
- package/src/math/math_plus.to_negative.ts +6 -6
- package/src/math/max.ts +2 -2
- package/src/math/numeric_struct.ts +225 -231
- package/src/mix_types/box.ts +34 -37
- package/src/mix_types/is_any_or_never.ts +6 -6
- package/src/mix_types/merge.ts +24 -28
- package/src/never/is_never.ts +13 -10
- package/src/never/is_not_never.ts +13 -10
- package/src/nodejs/isNodeError.ts +13 -13
- package/src/nominal/brand.ts +3 -4
- package/src/nominal/flavor.ts +3 -4
- package/src/nominal/nominal_match.ts +3 -10
- package/src/null/is_not_null.ts +5 -4
- package/src/null/is_null.ts +9 -8
- package/src/number/cast.ts +6 -6
- package/src/number/is_not_number.ts +15 -17
- package/src/number/is_not_number_literal.ts +17 -16
- package/src/number/is_number.ts +15 -17
- package/src/number/is_number_literal.ts +12 -14
- package/src/numeric/is_integer.ts +33 -27
- package/src/numeric/is_negative.ts +23 -23
- package/src/numeric/is_not_integer.ts +31 -26
- package/src/numeric/is_not_negative.ts +19 -19
- package/src/numeric/is_not_positive.ts +19 -19
- package/src/numeric/is_positive.ts +21 -21
- package/src/numeric/numeric_plus.ts +0 -1
- package/src/numeric/numeric_type.ts +0 -1
- package/src/object/ANotB.ts +2 -2
- package/src/object/IsDisjoint.ts +1 -4
- package/src/object/KeysWithDiffType.ts +2 -2
- package/src/object/KnownKeys.ts +7 -7
- package/src/object/RecursiveIntersect.ts +8 -8
- package/src/object/RecursiveRequired.ts +2 -2
- package/src/object/SpreadRecord.ts +1 -4
- package/src/object/facade.ts +1 -9
- package/src/object/getField.ts +1 -4
- package/src/object/hasKey.ts +1 -1
- package/src/object/is_not_object.ts +23 -16
- package/src/object/is_object.ts +23 -15
- package/src/object/left_join.ts +2 -2
- package/src/object/merge.ts +53 -72
- package/src/object/omit.ts +16 -25
- package/src/object/optional_key.ts +1 -4
- package/src/object/pick.ts +8 -19
- package/src/object/recursive_partial.ts +6 -6
- package/src/object/split.ts +3 -14
- package/src/object/typeOverrideIncompatible.ts +3 -3
- package/src/predicates/CanAssign.ts +9 -5
- package/src/predicates/assignable.ts +23 -24
- package/src/predicates/literal.ts +8 -8
- package/src/predicates/logical.ts +4 -4
- package/src/predicates/not_assignable.ts +23 -22
- package/src/primitive.ts +1 -10
- package/src/promise/index.ts +1 -1
- package/src/promise/mapSeries.ts +1 -1
- package/src/string/$extract_manipulated_string.ts +25 -20
- package/src/string/_string_type.ts +6 -6
- package/src/string/is_not_string.ts +13 -15
- package/src/string/is_not_string_literal.ts +29 -34
- package/src/string/is_not_template_literal.ts +18 -21
- package/src/string/is_string.ts +17 -20
- package/src/string/is_string_literal.ts +29 -34
- package/src/string/is_template_literal.ts +18 -20
- package/src/string/string.ts +2 -2
- package/src/string/string_plus.ts +6 -7
- package/src/symbol/is_not_symbol.ts +5 -3
- package/src/symbol/is_symbol.ts +5 -3
- package/src/testing/test_type.ts +89 -89
- package/src/tuple/common_prop_keys.ts +2 -5
- package/src/tuple/create_tuple.ts +18 -18
- package/src/tuple/drop.ts +20 -22
- package/src/tuple/is_not_tuple.ts +19 -21
- package/src/tuple/is_tuple.ts +23 -26
- package/src/tuple/tail.ts +5 -3
- package/src/tuple/tuple_plus.common_prop_keys.ts +6 -12
- package/src/tuple/tuple_plus.drop_match.ts +11 -11
- package/src/tuple/tuple_plus.filter.ts +5 -12
- package/src/tuple/tuple_plus.find.ts +14 -24
- package/src/tuple/tuple_plus.pad_start.ts +12 -27
- package/src/type_plus/$equality.ts +1 -3
- package/src/type_plus/$infer_error.ts +3 -1
- package/src/type_plus/$merge_options.ts +3 -4
- package/src/type_plus/$resolve_options.ts +6 -5
- package/src/type_plus/$special_type.ts +7 -5
- package/src/type_plus/$type.ts +3 -3
- package/src/type_plus/branch/$branch.ts +1 -2
- package/src/type_plus/branch/$exact.ts +9 -5
- package/src/type_plus/branch/$input_options.ts +1 -2
- package/src/type_plus/branch/$is_distributive.ts +7 -4
- package/src/type_plus/branch/$resolve_branch.ts +29 -39
- package/src/type_plus/branch/$select.ts +15 -16
- package/src/type_plus/branch/$select_invert.ts +11 -16
- package/src/type_plus/branch/$select_invert_strict.ts +14 -19
- package/src/type_plus/branch/$select_strict.ts +11 -13
- package/src/type_plus/branch/$selection.ts +8 -9
- package/src/type_plus/branch/$selection_options.ts +3 -3
- package/src/undefined/has_undefined.ts +4 -3
- package/src/undefined/is_not_undefined.ts +9 -9
- package/src/undefined/is_undefined.ts +9 -8
- package/src/union/union.ts +1 -4
- package/src/union/union_to_intersection.ts +1 -3
- package/src/unknown/is_not_unknown.ts +8 -8
- package/src/unknown/is_unknown.ts +8 -8
- package/src/unknown/not_unknown_or.ts +7 -3
- package/src/unknown/unknown.ts +0 -1
- package/src/utils/index.ts +17 -17
- package/src/void/is_not_void.ts +14 -14
- package/src/void/is_void.ts +14 -14
|
@@ -35,8 +35,8 @@ export type SplitAt<
|
|
|
35
35
|
> = IsArray<
|
|
36
36
|
A,
|
|
37
37
|
{
|
|
38
|
-
exact: true
|
|
39
|
-
$then: [A, A]
|
|
38
|
+
exact: true
|
|
39
|
+
$then: [A, A]
|
|
40
40
|
$else: SplitAt._<A, [], [], IndexAt._<A, Index>, DeleteCount, Insert>
|
|
41
41
|
}
|
|
42
42
|
>
|
|
@@ -48,32 +48,30 @@ export namespace SplitAt {
|
|
|
48
48
|
C extends readonly unknown[],
|
|
49
49
|
Index extends number,
|
|
50
50
|
DeleteCount,
|
|
51
|
-
Insert extends readonly unknown[]
|
|
51
|
+
Insert extends readonly unknown[]
|
|
52
52
|
> = 0 extends A['length']
|
|
53
|
-
? IsTuple<Insert, { $then: [[...Insert, ...B], C]
|
|
54
|
-
:
|
|
53
|
+
? IsTuple<Insert, { $then: [[...Insert, ...B], C]; $else: [B, C] }>
|
|
54
|
+
: Index extends B['length']
|
|
55
55
|
? IsNever<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
DeleteCount,
|
|
57
|
+
{
|
|
58
|
+
$then: [B, A]
|
|
59
|
+
$else: _D<A, B, C, DeleteCount, Insert>
|
|
60
|
+
}
|
|
61
|
+
>
|
|
62
|
+
: A extends readonly [infer Head, ...infer Tail]
|
|
62
63
|
? _<Tail, [...B, Head], [], Index, DeleteCount, Insert>
|
|
63
|
-
: 'unexpected: A does not extends [Head, ...Tail]'
|
|
64
|
+
: 'unexpected: A does not extends [Head, ...Tail]'
|
|
64
65
|
|
|
65
66
|
export type _D<
|
|
66
67
|
A extends readonly unknown[],
|
|
67
68
|
B extends readonly unknown[],
|
|
68
69
|
C extends readonly unknown[],
|
|
69
70
|
DeleteCount,
|
|
70
|
-
Insert extends readonly unknown[]
|
|
71
|
+
Insert extends readonly unknown[]
|
|
71
72
|
> = DeleteCount extends C['length']
|
|
72
|
-
? IsTuple<Insert, { $then: [[...B, ...Insert, ...A], C]
|
|
73
|
-
:
|
|
73
|
+
? IsTuple<Insert, { $then: [[...B, ...Insert, ...A], C]; $else: [[...B, ...A], C] }>
|
|
74
|
+
: A extends readonly [infer Head, ...infer Tail]
|
|
74
75
|
? _D<Tail, B, [...C, Head], DeleteCount, Insert>
|
|
75
|
-
: IsTuple<Insert, { $then: [[...Insert, ...B], C]
|
|
76
|
-
)
|
|
77
|
-
|
|
76
|
+
: IsTuple<Insert, { $then: [[...Insert, ...B], C]; $else: [B, C] }>
|
|
78
77
|
}
|
|
79
|
-
|
package/src/array/find_first.ts
CHANGED
|
@@ -51,22 +51,23 @@ import type { Find as ArrayFind } from './array_plus.find.js'
|
|
|
51
51
|
*/
|
|
52
52
|
export type FindFirst<
|
|
53
53
|
A extends readonly unknown[],
|
|
54
|
-
Criteria,
|
|
54
|
+
Criteria,
|
|
55
|
+
Options extends FindFirst.Options = FindFirst.DefaultOptions<Criteria>
|
|
55
56
|
> = IsTuple<
|
|
56
57
|
A,
|
|
57
58
|
{
|
|
58
|
-
$then: TupleFind<A, Criteria, Options
|
|
59
|
+
$then: TupleFind<A, Criteria, Options>
|
|
59
60
|
$else: ArrayFind<A, Criteria, Options>
|
|
60
61
|
}
|
|
61
62
|
>
|
|
62
63
|
|
|
63
64
|
export namespace FindFirst {
|
|
64
|
-
export interface Options extends ArrayFind.Options, TupleFind.Options {
|
|
65
|
+
export interface Options extends ArrayFind.Options, TupleFind.Options {}
|
|
65
66
|
export interface DefaultOptions<Criteria>
|
|
66
|
-
extends ArrayFind.DefaultOptions<Criteria>,
|
|
67
|
+
extends ArrayFind.DefaultOptions<Criteria>,
|
|
68
|
+
TupleFind.DefaultOptions<Criteria> {}
|
|
67
69
|
}
|
|
68
70
|
|
|
69
|
-
|
|
70
71
|
/**
|
|
71
72
|
* @deprecated use FindFirst
|
|
72
73
|
*/
|
package/src/array/head.ts
CHANGED
|
@@ -22,17 +22,18 @@ import type { $Else, $SelectionBranch, $Then } from '../type_plus/branch/$select
|
|
|
22
22
|
* @typeParam Options['caseEmptyTuple'] Return type when `T` is `[]`.
|
|
23
23
|
* Default to `never`.
|
|
24
24
|
*/
|
|
25
|
-
export type Head<
|
|
26
|
-
T extends readonly unknown[],
|
|
27
|
-
Options extends Head.Options = Head.DefaultOptions
|
|
28
|
-
> = IsNever<
|
|
25
|
+
export type Head<T extends readonly unknown[], Options extends Head.Options = Head.DefaultOptions> = IsNever<
|
|
29
26
|
T,
|
|
30
27
|
$SelectionBranch
|
|
31
28
|
> extends infer R
|
|
32
|
-
? R extends $Then
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
? R extends $Then
|
|
30
|
+
? Options['$never']
|
|
31
|
+
: R extends $Else
|
|
32
|
+
? T['length'] extends 0
|
|
33
|
+
? Options['caseEmptyTuple']
|
|
34
|
+
: T[0]
|
|
35
|
+
: never
|
|
36
|
+
: never
|
|
36
37
|
|
|
37
38
|
export namespace Head {
|
|
38
39
|
export interface Options extends $Never.$Options {
|
|
@@ -6,13 +6,13 @@ import type { Tail } from '../tuple/tail.js'
|
|
|
6
6
|
*
|
|
7
7
|
* Gets the intersect of properties of the elements in `A`.
|
|
8
8
|
*/
|
|
9
|
-
export type IntersectOfProps<A extends readonly
|
|
9
|
+
export type IntersectOfProps<A extends readonly Record<any, unknown>[], P extends KeyTypes> = number extends A['length']
|
|
10
10
|
? A[0][P]
|
|
11
11
|
: A['length'] extends 0
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
? never
|
|
13
|
+
: A['length'] extends 1
|
|
14
|
+
? A[0][P]
|
|
15
|
+
: A[0][P] & IntersectOfProps<Tail<A>, P>
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Gets the intersect of properties of the elements in `A`
|
package/src/array/is_array.ts
CHANGED
|
@@ -60,13 +60,12 @@ import type { $Else, $Then } from '../type_plus/branch/$selection.js'
|
|
|
60
60
|
* type R = IsArray<number, IsArray.$Branch> // $Else
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
|
-
export type IsArray<
|
|
63
|
+
export type IsArray<T, $O extends IsArray.$Options = {}> = $SpecialType<
|
|
64
64
|
T,
|
|
65
|
-
$
|
|
66
|
-
|
|
67
|
-
$MergeOptions<$O,
|
|
65
|
+
$MergeOptions<
|
|
66
|
+
$O,
|
|
68
67
|
{
|
|
69
|
-
$then: $ResolveBranch<T, $O, [$Else]
|
|
68
|
+
$then: $ResolveBranch<T, $O, [$Else]>
|
|
70
69
|
$else: IsArray.$<T, $O>
|
|
71
70
|
}
|
|
72
71
|
>
|
|
@@ -84,33 +83,33 @@ export namespace IsArray {
|
|
|
84
83
|
* This is a type util for building custom types.
|
|
85
84
|
* It does not check against special types.
|
|
86
85
|
*/
|
|
87
|
-
export type $<T, $O extends $UtilOptions> =
|
|
88
|
-
$
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
$else: $IsDistributive
|
|
106
|
-
$
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
86
|
+
export type $<T, $O extends $UtilOptions> = $Exact.$IsExact<
|
|
87
|
+
$O,
|
|
88
|
+
{
|
|
89
|
+
$then: $IsDistributive<
|
|
90
|
+
$O,
|
|
91
|
+
{
|
|
92
|
+
$then: T extends readonly any[]
|
|
93
|
+
? number extends T['length']
|
|
94
|
+
? $ResolveBranch<T, $O, [$Then]>
|
|
95
|
+
: $ResolveBranch<T, $O, [$Else]>
|
|
96
|
+
: $ResolveBranch<T, $O, [$Else]>
|
|
97
|
+
$else: [T] extends [readonly any[]]
|
|
98
|
+
? number extends T['length']
|
|
99
|
+
? $ResolveBranch<T, $O, [$Then]>
|
|
100
|
+
: $ResolveBranch<T, $O, [$Else]>
|
|
101
|
+
: $ResolveBranch<T, $O, [$Else]>
|
|
102
|
+
}
|
|
103
|
+
>
|
|
104
|
+
$else: $IsDistributive<
|
|
105
|
+
$O,
|
|
106
|
+
{
|
|
107
|
+
$then: T extends readonly any[] ? $ResolveBranch<T, $O, [$Then]> : $ResolveBranch<T, $O, [$Else]>
|
|
108
|
+
$else: [T] extends readonly [any[]] ? $ResolveBranch<T, $O, [$Then]> : $ResolveBranch<T, $O, [$Else]>
|
|
109
|
+
}
|
|
110
|
+
>
|
|
111
|
+
}
|
|
112
|
+
>
|
|
114
113
|
|
|
115
114
|
export type $UtilOptions = Assignable.$UtilOptions & $Exact.$Options
|
|
116
115
|
}
|
|
@@ -60,12 +60,12 @@ import type { $Else, $Then } from '../type_plus/branch/$selection.js'
|
|
|
60
60
|
* type R = IsNotArray<number, IsNotArray.$Branch> // $Then
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
|
-
export type IsNotArray<T,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
export type IsNotArray<T, $O extends IsNotArray.$Options = {}> = $SpecialType<
|
|
64
|
+
T,
|
|
65
|
+
$MergeOptions<
|
|
66
|
+
$O,
|
|
67
67
|
{
|
|
68
|
-
$then: $ResolveBranch<T, $O, [$Then]
|
|
68
|
+
$then: $ResolveBranch<T, $O, [$Then]>
|
|
69
69
|
$else: IsNotArray.$<T, $O>
|
|
70
70
|
}
|
|
71
71
|
>
|
|
@@ -82,33 +82,33 @@ export namespace IsNotArray {
|
|
|
82
82
|
* This is a type util for building custom types.
|
|
83
83
|
* It does not check against special types.
|
|
84
84
|
*/
|
|
85
|
-
export type $<T, $O extends $UtilOptions> =
|
|
86
|
-
$
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
$else: $IsDistributive
|
|
104
|
-
$
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
85
|
+
export type $<T, $O extends $UtilOptions> = $Exact.$IsExact<
|
|
86
|
+
$O,
|
|
87
|
+
{
|
|
88
|
+
$then: $IsDistributive<
|
|
89
|
+
$O,
|
|
90
|
+
{
|
|
91
|
+
$then: T extends readonly any[]
|
|
92
|
+
? number extends T['length']
|
|
93
|
+
? $ResolveBranch<T, $O, [$Else]>
|
|
94
|
+
: $ResolveBranch<T, $O, [$Then]>
|
|
95
|
+
: $ResolveBranch<T, $O, [$Then]>
|
|
96
|
+
$else: [T] extends [readonly any[]]
|
|
97
|
+
? number extends T['length']
|
|
98
|
+
? $ResolveBranch<T, $O, [$Else]>
|
|
99
|
+
: $ResolveBranch<T, $O, [$Then]>
|
|
100
|
+
: $ResolveBranch<T, $O, [$Then]>
|
|
101
|
+
}
|
|
102
|
+
>
|
|
103
|
+
$else: $IsDistributive<
|
|
104
|
+
$O,
|
|
105
|
+
{
|
|
106
|
+
$then: T extends readonly any[] ? $ResolveBranch<T, $O, [$Else]> : $ResolveBranch<T, $O, [$Then]>
|
|
107
|
+
$else: [T] extends readonly [any[]] ? $ResolveBranch<T, $O, [$Else]> : $ResolveBranch<T, $O, [$Then]>
|
|
108
|
+
}
|
|
109
|
+
>
|
|
110
|
+
}
|
|
111
|
+
>
|
|
112
112
|
|
|
113
113
|
export type $UtilOptions = NotAssignable.$UtilOptions & $Exact.$Options
|
|
114
114
|
}
|
package/src/array/last.ts
CHANGED
|
@@ -21,15 +21,20 @@ import type { $Else, $SelectionBranch, $Then } from '../type_plus/branch/$select
|
|
|
21
21
|
* @typeParam Options['caseEmptyTuple'] Return type when `T` is `[]`.
|
|
22
22
|
* Default to `never`.
|
|
23
23
|
*/
|
|
24
|
-
export type Last<
|
|
25
|
-
T
|
|
26
|
-
|
|
27
|
-
>
|
|
28
|
-
? R extends $Then
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
export type Last<T extends readonly unknown[], Options extends Last.Options = Last.DefaultOptions> = IsNever<
|
|
25
|
+
T,
|
|
26
|
+
$SelectionBranch
|
|
27
|
+
> extends infer R
|
|
28
|
+
? R extends $Then
|
|
29
|
+
? Options['$never']
|
|
30
|
+
: R extends $Else
|
|
31
|
+
? T['length'] extends 0
|
|
32
|
+
? Options['caseEmptyTuple']
|
|
33
|
+
: T extends readonly [...unknown[], infer R]
|
|
34
|
+
? R
|
|
35
|
+
: T[0]
|
|
36
|
+
: never
|
|
37
|
+
: never
|
|
33
38
|
|
|
34
39
|
export namespace Last {
|
|
35
40
|
export interface Options extends $Never.$Options {
|
|
@@ -17,10 +17,10 @@ import type { IsAnyOrNever } from '../mix_types/is_any_or_never.js'
|
|
|
17
17
|
*
|
|
18
18
|
* type R = LooseArrayType<string> // never
|
|
19
19
|
* ```
|
|
20
|
-
*/export type LooseArrayType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
20
|
+
*/ export type LooseArrayType<T, Then = T, Else = never> = IsAnyOrNever<
|
|
21
21
|
T,
|
|
22
22
|
{
|
|
23
|
-
$then: Else
|
|
23
|
+
$then: Else
|
|
24
24
|
$else: T extends readonly any[] ? Then : Else
|
|
25
25
|
}
|
|
26
26
|
>
|
package/src/array/pad_start.ts
CHANGED
|
@@ -29,9 +29,7 @@ export type PadStart<
|
|
|
29
29
|
A extends readonly unknown[],
|
|
30
30
|
MaxLength extends number,
|
|
31
31
|
PadWith = unknown
|
|
32
|
-
> = number extends A['length']
|
|
33
|
-
? PadStartArray<A, MaxLength, PadWith>
|
|
34
|
-
: PadStartTuple<A, MaxLength, PadWith>
|
|
32
|
+
> = number extends A['length'] ? PadStartArray<A, MaxLength, PadWith> : PadStartTuple<A, MaxLength, PadWith>
|
|
35
33
|
|
|
36
34
|
/**
|
|
37
35
|
* @deprecated use PadStart instead
|
package/src/array/reverse.ts
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
export type Reverse<A extends unknown[]> = number extends A['length']
|
|
7
7
|
? A
|
|
8
8
|
: A['length'] extends 0
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
? A
|
|
10
|
+
: A['length'] extends 1
|
|
11
|
+
? A
|
|
12
|
+
: A extends [any, ...infer T]
|
|
13
|
+
? T extends any[]
|
|
14
|
+
? [...Reverse<T>, A[0]]
|
|
15
|
+
: never
|
|
16
|
+
: never
|
|
@@ -7,8 +7,8 @@ import type { Tail } from '../tuple/tail.js'
|
|
|
7
7
|
export type UnionOfProps<A extends readonly Record<any, any>[], P extends KeyTypes> = A['length'] extends 0
|
|
8
8
|
? never
|
|
9
9
|
: A['length'] extends 1
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
? A[0][P]
|
|
11
|
+
: A[0][P] | UnionOfProps<Tail<A>, P>
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Gets the union of properties in the element of `A`
|
|
@@ -101,7 +101,7 @@ assertType.noError = <S>(subject: Exclude<S, Error>): void => {
|
|
|
101
101
|
if (subject instanceof Error) throw TypeError('subject is an Error')
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
assertType.isNever = (_subject: never): asserts _subject is never => {
|
|
104
|
+
assertType.isNever = (_subject: never): asserts _subject is never => {}
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
107
|
* creates a custom assertion function with standard TypeError.
|
|
@@ -109,9 +109,11 @@ assertType.isNever = (_subject: never): asserts _subject is never => { }
|
|
|
109
109
|
* thus making it hard to use:
|
|
110
110
|
* https://github.com/microsoft/TypeScript/issues/41047
|
|
111
111
|
*/
|
|
112
|
-
assertType.custom =
|
|
112
|
+
assertType.custom =
|
|
113
|
+
<T>(validator: (s: T) => boolean): ((subject: unknown) => asserts subject is T) =>
|
|
114
|
+
(subject) => {
|
|
113
115
|
if (!validator(subject as any)) throw new TypeError(`subject fails to satisfy ${tersify(validator)}`)
|
|
114
116
|
return
|
|
115
117
|
}
|
|
116
118
|
|
|
117
|
-
assertType.as = <T>(_subject: unknown): asserts _subject is T => {
|
|
119
|
+
assertType.as = <T>(_subject: unknown): asserts _subject is T => {}
|
package/src/bigint/cast.ts
CHANGED
package/src/bigint/is_bigint.ts
CHANGED
|
@@ -70,15 +70,16 @@ import type { $Else, $Then } from '../type_plus/branch/$selection.js'
|
|
|
70
70
|
* type R = IsBigint<string, $SelectionBranch> // $Else
|
|
71
71
|
* ```
|
|
72
72
|
*/
|
|
73
|
-
export type IsBigint<T, $O extends IsBigint.$Options = {}> =
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
73
|
+
export type IsBigint<T, $O extends IsBigint.$Options = {}> = $SpecialType<
|
|
74
|
+
T,
|
|
75
|
+
$MergeOptions<
|
|
76
|
+
$O,
|
|
77
|
+
{
|
|
78
|
+
$then: $ResolveBranch<T, $O, [$Else]>
|
|
79
|
+
$else: IsBigint.$<T, $O>
|
|
80
|
+
}
|
|
81
81
|
>
|
|
82
|
+
>
|
|
82
83
|
|
|
83
84
|
export namespace IsBigint {
|
|
84
85
|
export type $Options = $Equality.$Options & $Exact.$Options
|
|
@@ -92,23 +93,19 @@ export namespace IsBigint {
|
|
|
92
93
|
* This is a type util for building custom types.
|
|
93
94
|
* It does not check against special types.
|
|
94
95
|
*/
|
|
95
|
-
export type $<T, $O extends $UtilOptions> =
|
|
96
|
-
$
|
|
97
|
-
? $IsDistributive<$O, { $then: _SD<T, $O>, $else: _SN<T, $O> }>
|
|
96
|
+
export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], $Exact.$Default]> extends true
|
|
97
|
+
? $IsDistributive<$O, { $then: _SD<T, $O>; $else: _SN<T, $O> }>
|
|
98
98
|
: Assignable.$<T, bigint, $O>
|
|
99
99
|
export type $UtilOptions = Assignable.$UtilOptions & $Exact.$Options
|
|
100
100
|
|
|
101
|
-
export type _SD<T, $O extends $Options> =
|
|
102
|
-
|
|
103
|
-
? (
|
|
104
|
-
U extends bigint
|
|
101
|
+
export type _SD<T, $O extends $Options> = T extends bigint & infer U
|
|
102
|
+
? U extends bigint
|
|
105
103
|
? $ResolveBranch<T, $O, [$Else]>
|
|
106
104
|
: $ResolveBranch<T, $O, [$Then]>
|
|
107
|
-
)
|
|
108
105
|
: $ResolveBranch<T, $O, [$Else]>
|
|
109
|
-
export type _SN<T, $O extends $Options> =
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
106
|
+
export type _SN<T, $O extends $Options> = [T] extends [bigint & infer U]
|
|
107
|
+
? U extends bigint
|
|
108
|
+
? $ResolveBranch<T, $O, [$Else]>
|
|
109
|
+
: $ResolveBranch<T, $O, [$Then]>
|
|
113
110
|
: $ResolveBranch<T, $O, [$Else]>
|
|
114
111
|
}
|
|
@@ -58,10 +58,12 @@ import type { $Else, $Then } from '../type_plus/branch/$selection.js'
|
|
|
58
58
|
* type R = IsBigintLiteral<string, $SelectionBranch> // $Else
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
61
|
-
export type IsBigintLiteral<T, $O extends IsBigintLiteral.$Options = {}> = $SpecialType<
|
|
62
|
-
|
|
61
|
+
export type IsBigintLiteral<T, $O extends IsBigintLiteral.$Options = {}> = $SpecialType<
|
|
62
|
+
T,
|
|
63
|
+
$MergeOptions<
|
|
64
|
+
$O,
|
|
63
65
|
{
|
|
64
|
-
$then: $ResolveBranch<T, $O, [$Else]
|
|
66
|
+
$then: $ResolveBranch<T, $O, [$Else]>
|
|
65
67
|
$else: IsBigintLiteral.$<T, $O>
|
|
66
68
|
}
|
|
67
69
|
>
|
|
@@ -79,22 +81,18 @@ export namespace IsBigintLiteral {
|
|
|
79
81
|
* This is a type util for building custom types.
|
|
80
82
|
* It does not check against special types.
|
|
81
83
|
*/
|
|
82
|
-
export type $<T, $O extends $UtilOptions> =
|
|
83
|
-
$IsDistributive<$O, { $then: _D<T, $O>, $else: _N<T, $O> }>
|
|
84
|
+
export type $<T, $O extends $UtilOptions> = $IsDistributive<$O, { $then: _D<T, $O>; $else: _N<T, $O> }>
|
|
84
85
|
|
|
85
86
|
export type $UtilOptions = Assignable.$UtilOptions
|
|
86
87
|
|
|
87
|
-
export type _D<T, $O extends $UtilOptions> =
|
|
88
|
-
|
|
89
|
-
? (
|
|
90
|
-
U extends bigint
|
|
88
|
+
export type _D<T, $O extends $UtilOptions> = T extends bigint & infer U
|
|
89
|
+
? U extends bigint
|
|
91
90
|
? $ResolveBranch<T, $O, [$Then]>
|
|
92
91
|
: $ResolveBranch<T, $O, [$Else]>
|
|
93
|
-
)
|
|
94
|
-
: $ResolveBranch<T, $O, [$Else]>
|
|
95
|
-
export type _N<T, $O extends $UtilOptions> =
|
|
96
|
-
[T] extends [bigint & infer U] ?
|
|
97
|
-
U extends bigint ? $ResolveBranch<T, $O, [$Then]>
|
|
98
92
|
: $ResolveBranch<T, $O, [$Else]>
|
|
93
|
+
export type _N<T, $O extends $UtilOptions> = [T] extends [bigint & infer U]
|
|
94
|
+
? U extends bigint
|
|
95
|
+
? $ResolveBranch<T, $O, [$Then]>
|
|
96
|
+
: $ResolveBranch<T, $O, [$Else]>
|
|
99
97
|
: $ResolveBranch<T, $O, [$Else]>
|
|
100
98
|
}
|
|
@@ -67,10 +67,12 @@ import type { $Else, $Then } from '../type_plus/branch/$selection.js'
|
|
|
67
67
|
* type R = IsNotBigint<bigint, $SelectionBranch> // $Else
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
|
-
export type IsNotBigint<T, $O extends IsNotBigint.$Options = {}> = $SpecialType<
|
|
71
|
-
|
|
70
|
+
export type IsNotBigint<T, $O extends IsNotBigint.$Options = {}> = $SpecialType<
|
|
71
|
+
T,
|
|
72
|
+
$MergeOptions<
|
|
73
|
+
$O,
|
|
72
74
|
{
|
|
73
|
-
$then: $ResolveBranch<T, $O, [$Then]
|
|
75
|
+
$then: $ResolveBranch<T, $O, [$Then]>
|
|
74
76
|
$else: IsNotBigint.$<T, $O>
|
|
75
77
|
}
|
|
76
78
|
>
|
|
@@ -88,23 +90,19 @@ export namespace IsNotBigint {
|
|
|
88
90
|
* This is a type util for building custom types.
|
|
89
91
|
* It does not check against special types.
|
|
90
92
|
*/
|
|
91
|
-
export type $<T, $O extends $UtilOptions> =
|
|
92
|
-
$
|
|
93
|
-
? $IsDistributive<$O, { $then: _SD<T, $O>, $else: _SN<T, $O> }>
|
|
93
|
+
export type $<T, $O extends $UtilOptions> = $ResolveOptions<[$O['exact'], false]> extends true
|
|
94
|
+
? $IsDistributive<$O, { $then: _SD<T, $O>; $else: _SN<T, $O> }>
|
|
94
95
|
: NotAssignable.$<T, bigint, $O>
|
|
95
96
|
export type $UtilOptions = NotAssignable.$UtilOptions & $Exact.$Options
|
|
96
97
|
|
|
97
|
-
export type _SD<T, $O extends $Options> =
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
export type _SD<T, $O extends $Options> = T extends bigint & infer U
|
|
99
|
+
? U extends bigint
|
|
100
|
+
? $ResolveBranch<T, $O, [$Then]>
|
|
101
|
+
: $ResolveBranch<T, $O, [$Else]>
|
|
102
|
+
: $ResolveBranch<T, $O, [$Then]>
|
|
103
|
+
export type _SN<T, $O extends $Options> = [T] extends [bigint & infer U]
|
|
104
|
+
? U extends bigint
|
|
101
105
|
? $ResolveBranch<T, $O, [$Then]>
|
|
102
106
|
: $ResolveBranch<T, $O, [$Else]>
|
|
103
|
-
)
|
|
104
107
|
: $ResolveBranch<T, $O, [$Then]>
|
|
105
|
-
export type _SN<T, $O extends $Options> = (
|
|
106
|
-
[T] extends [bigint & infer U] ?
|
|
107
|
-
U extends bigint ? $ResolveBranch<T, $O, [$Then]>
|
|
108
|
-
: $ResolveBranch<T, $O, [$Else]>
|
|
109
|
-
: $ResolveBranch<T, $O, [$Then]>)
|
|
110
108
|
}
|
|
@@ -56,10 +56,12 @@ import type { $Else, $Then } from '../type_plus/branch/$selection.js'
|
|
|
56
56
|
* type R = IsNotBigintLiteral<bigint, $SelectionBranch> // $Then
|
|
57
57
|
* ```
|
|
58
58
|
*/
|
|
59
|
-
export type IsNotBigintLiteral<T, $O extends IsNotBigintLiteral.$Options = {}> = $SpecialType<
|
|
60
|
-
|
|
59
|
+
export type IsNotBigintLiteral<T, $O extends IsNotBigintLiteral.$Options = {}> = $SpecialType<
|
|
60
|
+
T,
|
|
61
|
+
$MergeOptions<
|
|
62
|
+
$O,
|
|
61
63
|
{
|
|
62
|
-
$then: $ResolveBranch<T, $O, [$Then]
|
|
64
|
+
$then: $ResolveBranch<T, $O, [$Then]>
|
|
63
65
|
$else: IsNotBigintLiteral.$<T, $O>
|
|
64
66
|
}
|
|
65
67
|
>
|
|
@@ -77,25 +79,24 @@ export namespace IsNotBigintLiteral {
|
|
|
77
79
|
* This is a type util for building custom types.
|
|
78
80
|
* It does not check against special types.
|
|
79
81
|
*/
|
|
80
|
-
export type $<T, $O extends $UtilOptions> =
|
|
81
|
-
$
|
|
82
|
-
|
|
82
|
+
export type $<T, $O extends $UtilOptions> = $IsDistributive<
|
|
83
|
+
$O,
|
|
84
|
+
{
|
|
85
|
+
$then: _D<T, $O>
|
|
83
86
|
$else: _N<T, $O>
|
|
84
|
-
}
|
|
87
|
+
}
|
|
88
|
+
>
|
|
85
89
|
|
|
86
90
|
export type $UtilOptions = Assignable.$UtilOptions
|
|
87
91
|
|
|
88
|
-
export type _D<T, $O extends $UtilOptions> =
|
|
89
|
-
|
|
90
|
-
? (
|
|
91
|
-
U extends bigint
|
|
92
|
+
export type _D<T, $O extends $UtilOptions> = T extends bigint & infer U
|
|
93
|
+
? U extends bigint
|
|
92
94
|
? $ResolveBranch<T, $O, [$Else]>
|
|
93
95
|
: $ResolveBranch<T, $O, [$Then]>
|
|
94
|
-
)
|
|
95
|
-
: $ResolveBranch<T, $O, [$Then]>
|
|
96
|
-
export type _N<T, $O extends $UtilOptions> =
|
|
97
|
-
[T] extends [bigint & infer U] ?
|
|
98
|
-
U extends bigint ? $ResolveBranch<T, $O, [$Else]>
|
|
99
96
|
: $ResolveBranch<T, $O, [$Then]>
|
|
97
|
+
export type _N<T, $O extends $UtilOptions> = [T] extends [bigint & infer U]
|
|
98
|
+
? U extends bigint
|
|
99
|
+
? $ResolveBranch<T, $O, [$Else]>
|
|
100
|
+
: $ResolveBranch<T, $O, [$Then]>
|
|
100
101
|
: $ResolveBranch<T, $O, [$Then]>
|
|
101
102
|
}
|