@@ -13,15 +13,15 @@ import {
1313} from 'graphql-compose' ;
1414import type { ComposeFieldConfigAsObject } from 'graphql-compose/lib/ObjectTypeComposer' ;
1515import type { Model } from 'mongoose' ;
16- import { composeWithMongoose , type TypeConverterOpts } from '../composeWithMongoose' ;
16+ import { composeWithMongoose , type ComposeWithMongooseOpts } from '../composeWithMongoose' ;
1717import { composeChildTC } from './composeChildTC' ;
1818import { mergeCustomizationOptions } from './utils/mergeCustomizationOptions' ;
1919import { prepareBaseResolvers } from './prepareBaseResolvers' ;
2020import { reorderFields } from './utils/reorderFields' ;
2121
22- export type DiscriminatorOptions < TContext > = { |
22+ export type ComposeWithMongooseDiscriminatorsOpts < TContext > = { |
2323 reorderFields ?: boolean | string [ ] , // true order: _id, DKey, DInterfaceFields, DiscriminatorFields
24- ...TypeConverterOpts < TContext > ,
24+ ...ComposeWithMongooseOpts < TContext > ,
2525| } ;
2626
2727type Discriminators = {
@@ -75,7 +75,7 @@ export class DiscriminatorTypeComposer<TSource, TContext> extends ObjectTypeComp
7575
7676 DKeyETC : EnumTypeComposer < TContext > ;
7777
78- opts : DiscriminatorOptions < TContext > ;
78+ opts : ComposeWithMongooseDiscriminatorsOpts < TContext > ;
7979
8080 DInterface : InterfaceTypeComposer < TSource , TContext > ;
8181
@@ -190,6 +190,23 @@ export class DiscriminatorTypeComposer<TSource, TContext> extends ObjectTypeComp
190190 return ! ! this . childTCs . find ( ch => ch . getTypeName ( ) === DName ) ;
191191 }
192192
193+ /* eslint no-use-before-define: 0 */
194+ discriminator < TSrc : Model > (
195+ childModel : Class < TSrc > ,
196+ opts ?: ComposeWithMongooseOpts < TContext >
197+ ) : ObjectTypeComposer < TSrc , TContext > {
198+ const customizationOpts = mergeCustomizationOptions ( ( this . opts : any ) , opts ) ;
199+
200+ let childTC = composeWithMongoose ( childModel , customizationOpts ) ;
201+
202+ childTC = composeChildTC ( this , childTC , this . opts ) ;
203+
204+ this . schemaComposer . addSchemaMustHaveType ( childTC ) ;
205+ this . childTCs . push ( childTC ) ;
206+
207+ return childTC ;
208+ }
209+
193210 setFields ( fields : ComposeFieldConfigMap < any , any > ) : DiscriminatorTypeComposer < TSource , TContext > {
194211 const oldFieldNames = super . getFieldNames ( ) ;
195212 super . setFields ( fields ) ;
@@ -358,21 +375,4 @@ export class DiscriminatorTypeComposer<TSource, TContext> extends ObjectTypeComp
358375
359376 return this ;
360377 }
361-
362- /* eslint no-use-before-define: 0 */
363- discriminator < TSrc : Model > (
364- childModel : Class < TSrc > ,
365- opts ?: TypeConverterOpts < TContext >
366- ) : ObjectTypeComposer < TSrc , TContext > {
367- const customizationOpts = mergeCustomizationOptions ( ( this . opts : any ) , opts ) ;
368-
369- let childTC = composeWithMongoose ( childModel , customizationOpts ) ;
370-
371- childTC = composeChildTC ( this , childTC , this . opts ) ;
372-
373- this . schemaComposer . addSchemaMustHaveType ( childTC ) ;
374- this . childTCs . push ( childTC ) ;
375-
376- return childTC ;
377- }
378378}
0 commit comments