@@ -291,32 +291,35 @@ export interface Mapper<TSchema extends Schema | StrictSchema, TResult = ResultI
291
291
* @param { } type
292
292
*
293
293
*/
294
- export function morphism < TSchema extends Schema , Source extends object > (
294
+ export function morphism < TSchema extends Schema , Source extends SourceFromSchema < TSchema > > (
295
295
schema : TSchema ,
296
296
data : Source
297
- ) : Source extends ( infer _C ) [ ] ? ResultItem < TSchema > [ ] : ResultItem < TSchema > ;
297
+ ) : Source extends any [ ] ? ResultItem < TSchema > [ ] : ResultItem < TSchema > ;
298
298
299
- // morphism({}) => mapper(S) => T
300
- export function morphism < TSchema extends Schema > ( schema : TSchema ) : Mapper < TSchema > ;
299
+ export function morphism < TSchema extends Schema , Source extends SourceFromSchema < TSchema > > (
300
+ schema : TSchema ,
301
+ data : Source [ ]
302
+ ) : ResultItem < TSchema > [ ] ;
303
+
304
+ export function morphism < TSchema extends Schema > ( schema : TSchema ) : Mapper < TSchema > ; // morphism({}) => mapper(S) => T
301
305
302
- // morphism({}, null, T) => mapper(S) => T
303
306
export function morphism < TSchema extends Schema , TDestination > (
304
307
schema : TSchema ,
305
308
items : null ,
306
309
type : Constructable < TDestination >
307
- ) : Mapper < TSchema , TDestination > ;
310
+ ) : Mapper < TSchema , TDestination > ; // morphism({}, null, T) => mapper(S) => T
308
311
309
- // morphism({}, {}, T) => T
310
312
export function morphism < TSchema extends Schema , Target > (
311
313
schema : TSchema ,
312
314
items : SourceFromSchema < TSchema > ,
313
315
type : Constructable < Target >
314
- ) : Target ;
316
+ ) : Target ; // morphism({}, {}, T) => T
317
+
315
318
export function morphism < Target , Source , TSchema extends Schema < Target , Source > > (
316
319
schema : TSchema ,
317
320
items ?: SourceFromSchema < TSchema > ,
318
321
type ?: Constructable < Target >
319
- ) {
322
+ ) : any {
320
323
if ( items === undefined && type === undefined ) {
321
324
return transformItems ( schema ) ;
322
325
} else if ( schema && items && type ) {
0 commit comments