@@ -29,8 +29,8 @@ export type MergeObjects<
29
29
? nullish
30
30
: Defaults [ Key ]
31
31
: Defaults [ Key ] extends nullish
32
- ? Destination [ Key ]
33
- : Merge < Destination [ Key ] , Defaults [ Key ] > ; // eslint-disable-line no-use-before-define
32
+ ? Destination [ Key ]
33
+ : Merge < Destination [ Key ] , Defaults [ Key ] > ; // eslint-disable-line no-use-before-define
34
34
} ;
35
35
36
36
export type Defu <
@@ -42,10 +42,10 @@ export type Defu<
42
42
? Defu < MergeObjects < S , F > , Rest >
43
43
: MergeObjects < S , F >
44
44
: F extends IgnoredInput
45
- ? Rest extends Array < Input | IgnoredInput >
46
- ? Defu < S , Rest >
45
+ ? Rest extends Array < Input | IgnoredInput >
46
+ ? Defu < S , Rest >
47
+ : S
47
48
: S
48
- : S
49
49
: S ;
50
50
51
51
export type DefuFn = <
@@ -81,31 +81,31 @@ export type Merge<Destination extends Input, Defaults extends Input> =
81
81
? nullish
82
82
: Defaults
83
83
: Defaults extends nullish
84
- ? Destination
85
- : // Handle arrays
86
- Destination extends Array < any >
87
- ? Defaults extends Array < any >
88
- ? MergeArrays < Destination , Defaults >
89
- : Destination | Defaults
90
- : // Don't attempt to merge Functions, RegExps, Promises
91
- // eslint-disable-next-line @typescript-eslint/ban-types
92
- Destination extends Function
93
- ? Destination | Defaults
94
- : Destination extends RegExp
95
- ? Destination | Defaults
96
- : Destination extends Promise < any >
97
- ? Destination | Defaults
98
- : // Don't attempt to merge Functions, RegExps, Promises
99
- // eslint-disable-next-line @typescript-eslint/ban-types
100
- Defaults extends Function
101
- ? Destination | Defaults
102
- : Defaults extends RegExp
103
- ? Destination | Defaults
104
- : Defaults extends Promise < any >
105
- ? Destination | Defaults
106
- : // Ensure we only merge Records
107
- Destination extends Input
108
- ? Defaults extends Input
109
- ? MergeObjects < Destination , Defaults >
110
- : Destination | Defaults
111
- : Destination | Defaults ;
84
+ ? Destination
85
+ : // Handle arrays
86
+ Destination extends Array < any >
87
+ ? Defaults extends Array < any >
88
+ ? MergeArrays < Destination , Defaults >
89
+ : Destination | Defaults
90
+ : // Don't attempt to merge Functions, RegExps, Promises
91
+ // eslint-disable-next-line @typescript-eslint/ban-types
92
+ Destination extends Function
93
+ ? Destination | Defaults
94
+ : Destination extends RegExp
95
+ ? Destination | Defaults
96
+ : Destination extends Promise < any >
97
+ ? Destination | Defaults
98
+ : // Don't attempt to merge Functions, RegExps, Promises
99
+ // eslint-disable-next-line @typescript-eslint/ban-types
100
+ Defaults extends Function
101
+ ? Destination | Defaults
102
+ : Defaults extends RegExp
103
+ ? Destination | Defaults
104
+ : Defaults extends Promise < any >
105
+ ? Destination | Defaults
106
+ : // Ensure we only merge Records
107
+ Destination extends Input
108
+ ? Defaults extends Input
109
+ ? MergeObjects < Destination , Defaults >
110
+ : Destination | Defaults
111
+ : Destination | Defaults ;
0 commit comments