66 graphql ,
77 schemaComposer ,
88 SchemaComposer ,
9- TypeComposer ,
9+ TypeComposerClass ,
1010} from 'graphql-compose' ;
1111import type { GraphQLFieldConfigMap } from 'graphql-compose/lib/graphql' ;
1212import type {
@@ -50,7 +50,7 @@ function setDKeyETCValues(discriminators: Discriminators): any {
5050
5151// creates an enum from discriminator names
5252// then sets this enum type as the discriminator key field type
53- function createAndSetDKeyETC ( dTC : DiscriminatorTypeComposer , discriminators : Discriminators ) {
53+ function createAndSetDKeyETC ( dTC : DiscriminatorTypeComposer < any > , discriminators : Discriminators ) {
5454 const DKeyETC = EnumTypeComposer . create ( {
5555 name : `EnumDKey${ dTC . getTypeName ( ) } ${ dTC . getDKey ( ) [ 0 ] . toUpperCase ( ) + dTC . getDKey ( ) . substr ( 1 ) } ` ,
5656 values : setDKeyETCValues ( discriminators ) ,
@@ -69,7 +69,7 @@ function createAndSetDKeyETC(dTC: DiscriminatorTypeComposer, discriminators: Dis
6969 return DKeyETC ;
7070}
7171
72- function getBaseTCFieldsWithTypes ( baseTC : TypeComposer ) {
72+ function getBaseTCFieldsWithTypes ( baseTC : TypeComposerClass < any > ) {
7373 const baseFields = baseTC . getFieldNames ( ) ;
7474 const baseFieldsWithTypes : GraphQLFieldConfigMap < any , any > = { } ;
7575
@@ -80,7 +80,7 @@ function getBaseTCFieldsWithTypes(baseTC: TypeComposer) {
8080 return baseFieldsWithTypes ;
8181}
8282
83- function createDInterface ( baseModelTC : DiscriminatorTypeComposer ) : GraphQLInterfaceType {
83+ function createDInterface ( baseModelTC : DiscriminatorTypeComposer < any > ) : GraphQLInterfaceType {
8484 return new GraphQLInterfaceType ( {
8585 name : `${ baseModelTC . getTypeName ( ) } Interface` ,
8686
@@ -99,7 +99,7 @@ function createDInterface(baseModelTC: DiscriminatorTypeComposer): GraphQLInterf
9999 } ) ;
100100}
101101
102- export class DiscriminatorTypeComposer extends TypeComposer {
102+ export class DiscriminatorTypeComposer < TContext > extends TypeComposerClass < TContext > {
103103 discriminatorKey : string ;
104104
105105 DKeyETC : EnumTypeComposer ;
@@ -108,7 +108,8 @@ export class DiscriminatorTypeComposer extends TypeComposer {
108108
109109 DInterface : GraphQLInterfaceType ;
110110
111- childTCs : TypeComposer [ ] ;
111+ childTCs : TypeComposerClass < TContext > [ ] ;
112+
112113 static _getClassConnectedWithSchemaComposer (
113114 sc ?: SchemaComposer < TContext >
114115 ) : Class < DiscriminatorTypeComposer < TContext >> {
@@ -182,7 +183,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
182183 return ! ! this . childTCs . find ( ch => ch . getTypeName ( ) === DName ) ;
183184 }
184185
185- setFields ( fields : ComposeFieldConfigMap < any , any > ) : this {
186+ setFields ( fields : ComposeFieldConfigMap < any , any > ) : DiscriminatorTypeComposer < TContext > {
186187 super . setFields ( fields ) ;
187188
188189 for ( const childTC of this . childTCs ) {
@@ -192,7 +193,10 @@ export class DiscriminatorTypeComposer extends TypeComposer {
192193 return this ;
193194 }
194195
195- setField ( fieldName : string , fieldConfig : ComposeFieldConfig < any , any > ) : this {
196+ setField (
197+ fieldName : string ,
198+ fieldConfig : ComposeFieldConfig < any , any >
199+ ) : DiscriminatorTypeComposer < TContext > {
196200 super . setField ( fieldName , fieldConfig ) ;
197201
198202 for ( const childTC of this . childTCs ) {
@@ -203,7 +207,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
203207 }
204208
205209 // discriminators must have all interface fields
206- addFields ( newFields : ComposeFieldConfigMap < any , any > ) : this {
210+ addFields ( newFields : ComposeFieldConfigMap < any , any > ) : DiscriminatorTypeComposer < TContext > {
207211 super . addFields ( newFields ) ;
208212
209213 for ( const childTC of this . childTCs ) {
@@ -213,7 +217,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
213217 return this ;
214218 }
215219
216- addNestedFields ( newFields : ComposeFieldConfigMap < any , any > ) : this {
220+ addNestedFields ( newFields : ComposeFieldConfigMap < any , any > ) : DiscriminatorTypeComposer < TContext > {
217221 super . addNestedFields ( newFields ) ;
218222
219223 for ( const childTC of this . childTCs ) {
@@ -223,7 +227,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
223227 return this ;
224228 }
225229
226- removeField ( fieldNameOrArray : string | Array < string > ) : this {
230+ removeField ( fieldNameOrArray : string | Array < string > ) : DiscriminatorTypeComposer < TContext > {
227231 super . removeField ( fieldNameOrArray ) ;
228232
229233 for ( const childTC of this . childTCs ) {
@@ -233,7 +237,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
233237 return this ;
234238 }
235239
236- removeOtherFields ( fieldNameOrArray : string | Array < string > ) : this {
240+ removeOtherFields ( fieldNameOrArray : string | Array < string > ) : DiscriminatorTypeComposer < TContext > {
237241 super . removeOtherFields ( fieldNameOrArray ) ;
238242
239243 for ( const childTC of this . childTCs ) {
@@ -245,7 +249,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
245249
246250 extendField (
247251 fieldName : string ,
248- partialFieldConfig : ComposePartialFieldConfigAsObject < any , any >
252+ partialFieldConfig : ComposePartialFieldConfigAsObject < any , TContext >
249253 ) : this {
250254 super . extendField ( fieldName , partialFieldConfig ) ;
251255
@@ -256,7 +260,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
256260 return this ;
257261 }
258262
259- reorderFields ( names : string [ ] ) : this {
263+ reorderFields ( names : string [ ] ) : DiscriminatorTypeComposer < TContext > {
260264 super . reorderFields ( names ) ;
261265
262266 for ( const childTC of this . childTCs ) {
@@ -266,7 +270,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
266270 return this ;
267271 }
268272
269- makeFieldNonNull ( fieldNameOrArray : string | Array < string > ) : this {
273+ makeFieldNonNull ( fieldNameOrArray : string | Array < string > ) : DiscriminatorTypeComposer < TContext > {
270274 super . makeFieldNonNull ( fieldNameOrArray ) ;
271275
272276 for ( const childTC of this . childTCs ) {
@@ -276,7 +280,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
276280 return this ;
277281 }
278282
279- makeFieldNullable ( fieldNameOrArray : string | Array < string > ) : this {
283+ makeFieldNullable ( fieldNameOrArray : string | Array < string > ) : DiscriminatorTypeComposer < TContext > {
280284 super . makeFieldNullable ( fieldNameOrArray ) ;
281285
282286 for ( const childTC of this . childTCs ) {
@@ -286,7 +290,9 @@ export class DiscriminatorTypeComposer extends TypeComposer {
286290 return this ;
287291 }
288292
289- deprecateFields ( fields : { [ fieldName : string ] : string } | string [ ] | string ) : this {
293+ deprecateFields (
294+ fields : { [ fieldName : string ] : string } | string [ ] | string
295+ ) : DiscriminatorTypeComposer < TContext > {
290296 super . deprecateFields ( fields ) ;
291297
292298 for ( const childTC of this . childTCs ) {
@@ -300,7 +306,10 @@ export class DiscriminatorTypeComposer extends TypeComposer {
300306 // support field args. Well if one wants to have use args, you setType for resolver as this
301307 // this = this DiscriminantTypeComposer
302308 // NOTE, those relations will be propagated to the childTypeComposers and you can use normally.
303- addRelation ( fieldName : string , relationOpts : RelationOpts < any , any > ) : this {
309+ addRelation (
310+ fieldName : string ,
311+ relationOpts : RelationOpts < any , any >
312+ ) : DiscriminatorTypeComposer < TContext > {
304313 super . addRelation ( fieldName , relationOpts ) ;
305314
306315 for ( const childTC of this . childTCs ) {
@@ -310,7 +319,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
310319 return this ;
311320 }
312321
313- setRecordIdFn ( fn : GetRecordIdFn < any , any > ) : this {
322+ setRecordIdFn ( fn : GetRecordIdFn < any , any > ) : DiscriminatorTypeComposer < TContext > {
314323 super . setRecordIdFn ( fn ) ;
315324
316325 for ( const childTC of this . childTCs ) {
@@ -321,7 +330,7 @@ export class DiscriminatorTypeComposer extends TypeComposer {
321330 }
322331
323332 /* eslint no-use-before-define: 0 */
324- discriminator ( childModel : Model , opts ?: TypeConverterOpts ) : TypeComposer {
333+ discriminator ( childModel : Model , opts ?: TypeConverterOpts ) : TypeComposerClass < TContext > {
325334 const customizationOpts = mergeCustomizationOptions (
326335 ( this . opts : any ) . customizationOptions ,
327336 opts
0 commit comments