@zayne-labs/toolkit-type-helpers 0.10.19 → 0.10.21

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.
@@ -60,7 +60,7 @@ type AllowOnlyFirst<TFirstType, TSecondType, TErrorMessages extends ErrorMessage
60
60
  * @template TArrayOfTypes Array of types to merge
61
61
  * @template TAccumulator Accumulator for the resulting merged type
62
62
  */
63
- type MergeTypes<TArrayOfTypes extends unknown[], TAccumulator = NonNullable<unknown>> = TArrayOfTypes extends [infer TFirstType, ...infer TRest] ? MergeTypes<TRest, TAccumulator & TFirstType> : TAccumulator;
63
+ type MergeTypes<TArrayOfTypes extends unknown[], TAccumulator = NonNullable<unknown>> = TArrayOfTypes extends [infer TFirstType, ...infer TRestOfTypes] ? MergeTypes<TRestOfTypes, { [Key in keyof TAccumulator | keyof TFirstType]: (TAccumulator & TFirstType)[Key] }> : TAccumulator;
64
64
  /**
65
65
  * Type utility that extracts discriminated properties from a union of types.
66
66
  * Takes an array of types and returns a union of types where each type has unique properties.
@@ -70,7 +70,7 @@ type MergeTypes<TArrayOfTypes extends unknown[], TAccumulator = NonNullable<unkn
70
70
  * @template TAccumulator Accumulator for the resulting union
71
71
  * @template TMergedProperties Merged properties from all types
72
72
  */
73
- type UnionDiscriminator<TArrayOfTypes extends unknown[], TErrorMessages extends ErrorMessages<keyof MergeTypes<TArrayOfTypes>> = never, TAccumulator = never, TMergedProperties = MergeTypes<TArrayOfTypes>> = TArrayOfTypes extends [infer TFirstType, ...infer TRest] ? UnionDiscriminator<TRest, TErrorMessages, TAccumulator | AllowOnlyFirst<TFirstType, TMergedProperties, TErrorMessages>, TMergedProperties> : TAccumulator;
73
+ type UnionDiscriminator<TArrayOfTypes extends unknown[], TErrorMessages extends ErrorMessages<keyof MergeTypes<TArrayOfTypes>> = never, TAccumulator = never, TMergedProperties = MergeTypes<TArrayOfTypes>> = TArrayOfTypes extends [infer TFirstType, ...infer TRestOfTypes] ? UnionDiscriminator<TRestOfTypes, TErrorMessages, TAccumulator | AllowOnlyFirst<TFirstType, TMergedProperties, TErrorMessages>, TMergedProperties> : TAccumulator;
74
74
  type UnionVariant = "keys" | "values";
75
75
  type ExtractUnion<TObject, TVariant extends UnionVariant = "keys"> = TObject extends Array<infer TUnion> | ReadonlyArray<infer TUnion> | Set<infer TUnion> ? TUnion : TObject extends Record<infer TKeys, infer TValues> ? TVariant extends "keys" ? TKeys : Prettify<Writeable<TValues, "deep">> : never;
76
76
  type UnionToIntersection<TUnion> = (TUnion extends unknown ? (param: TUnion) => void : never) extends ((param: infer TParam) => void) ? TParam : never;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zayne-labs/toolkit-type-helpers",
3
3
  "type": "module",
4
- "version": "0.10.19",
4
+ "version": "0.10.21",
5
5
  "description": "A collection of utility functions, types and composables used by my other projects. Nothing too fancy but can be useful.",
6
6
  "author": "Ryan Zayne",
7
7
  "license": "MIT",