@@ -35,6 +35,13 @@ export interface TypeFactoryInterface<
35
35
build < const T extends InputFieldsResolver < Type & TransientFields > > (
36
36
inputFieldsResolver : T ,
37
37
) : Promise < Pick < Merge < ResolvedFields < _DefaultFieldsResolver > , ResolvedFields < T > > , keyof Type > > ;
38
+ buildList (
39
+ count : number ,
40
+ ) : Promise < Pick < Merge < ResolvedFields < _DefaultFieldsResolver > , ResolvedFields < { } > > , keyof Type > [ ] > ;
41
+ buildList < const T extends InputFieldsResolver < Type & TransientFields > > (
42
+ count : number ,
43
+ inputFieldsResolver : T ,
44
+ ) : Promise < Pick < Merge < ResolvedFields < _DefaultFieldsResolver > , ResolvedFields < T > > , keyof Type > [ ] > ;
38
45
use < T extends keyof _Traits > (
39
46
traitName : T ,
40
47
) : TypeFactoryInterface < Type , TransientFields , Merge < _DefaultFieldsResolver , _Traits [ T ] [ 'defaultFields' ] > , _Traits > ;
@@ -67,6 +74,22 @@ export function defineTypeFactoryInternal<
67
74
inputFieldsResolver ?? ( { } as T ) ,
68
75
) ;
69
76
} ,
77
+ async buildList < const T extends InputFieldsResolver < Type & TransientFields > > (
78
+ count : number ,
79
+ inputFieldsResolver ?: T ,
80
+ ) : Promise < Pick < Merge < ResolvedFields < _DefaultFieldsResolver > , ResolvedFields < T > > , keyof Type > [ ] > {
81
+ const array : Pick < Merge < ResolvedFields < _DefaultFieldsResolver > , ResolvedFields < T > > , keyof Type > [ ] = [ ] ;
82
+ for ( let i = 0 ; i < count ; i ++ ) {
83
+ if ( inputFieldsResolver ) {
84
+ // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-explicit-any
85
+ array . push ( ( await this . build ( inputFieldsResolver ) ) as any ) ;
86
+ } else {
87
+ // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-explicit-any
88
+ array . push ( ( await this . build ( ) ) as any ) ;
89
+ }
90
+ }
91
+ return array ;
92
+ } ,
70
93
use < T extends keyof _Traits > (
71
94
traitName : T ,
72
95
) : TypeFactoryInterface <
0 commit comments