@@ -71,12 +71,29 @@ export type ValidateSerializableMap<T, TSerializable> =
7171 >
7272 : never
7373
74- type ValidateSerializableArray < T extends ReadonlyArray < any > , TSerializable > =
74+ type ApplyArrayValidation <
75+ TValue ,
76+ TSerializable ,
77+ TKind extends 'input' | 'result' ,
78+ > = TKind extends 'input'
79+ ? ValidateSerializable < TValue , TSerializable >
80+ : ValidateSerializableResult < TValue , TSerializable >
81+
82+ type ValidateSerializableArrayCore <
83+ T extends ReadonlyArray < any > ,
84+ TSerializable ,
85+ TKind extends 'input' | 'result' ,
86+ > =
7587 IsTuple < T > extends true
76- ? { [ K in keyof T ] : ValidateSerializable < T [ K ] , TSerializable > }
88+ ? { [ K in keyof T ] : ApplyArrayValidation < T [ K ] , TSerializable , TKind > }
7789 : T extends Array < infer U >
78- ? Array < ValidateSerializable < U , TSerializable > >
79- : ReadonlyArray < ValidateSerializable < T [ number ] , TSerializable > >
90+ ? Array < ApplyArrayValidation < U , TSerializable , TKind > >
91+ : ReadonlyArray < ApplyArrayValidation < T [ number ] , TSerializable , TKind > >
92+
93+ type ValidateSerializableArray <
94+ T extends ReadonlyArray < any > ,
95+ TSerializable ,
96+ > = ValidateSerializableArrayCore < T , TSerializable , 'input' >
8097
8198type IsTuple < T extends ReadonlyArray < any > > = T extends readonly [ ]
8299 ? true
@@ -202,12 +219,7 @@ export type ValidateSerializableResult<T, TSerializable> = T extends unknown
202219type ValidateSerializableResultArray <
203220 T extends ReadonlyArray < any > ,
204221 TSerializable ,
205- > =
206- IsTuple < T > extends true
207- ? { [ K in keyof T ] : ValidateSerializableResult < T [ K ] , TSerializable > }
208- : T extends Array < infer U >
209- ? Array < ValidateSerializableResult < U , TSerializable > >
210- : ReadonlyArray < ValidateSerializableResult < T [ number ] , TSerializable > >
222+ > = ValidateSerializableArrayCore < T , TSerializable , 'result' >
211223
212224export type RegisteredSSROption < TRegister > =
213225 unknown extends RegisteredConfigType < TRegister , 'defaultSsr' >
0 commit comments