Skip to content

Commit 7d29a85

Browse files
committed
Tidy eDTC code
1 parent 14d82de commit 7d29a85

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

src/enhancedDiscriminators/eDiscriminatorTypeComposer.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ export class EDiscriminatorTypeComposer<TSource, TContext> extends InterfaceType
8989
opts
9090
) as ObjectTypeComposer;
9191

92+
// create new enhanced discriminator TC
9293
const eDTC = new EDiscriminatorTypeComposer(
9394
new GraphQLInterfaceType({
9495
name: typeName,
@@ -104,18 +105,16 @@ export class EDiscriminatorTypeComposer<TSource, TContext> extends InterfaceType
104105
'A custom discriminator key must be set on the model options in mongoose for discriminator behaviour to function correctly'
105106
);
106107
}
108+
107109
eDTC._buildDiscriminatedInterface(model, baseTC);
108-
eDTC.setInputTypeComposer(eDTC.DInputObject.getInputTypeComposer());
109110

110-
// eDTC.setInterfaces([eDTC.DInterface]);
111+
// set input to custom OTC since IFTCs are not supported in graphQL as inputs
112+
eDTC.setInputTypeComposer(eDTC.DInputObject.getInputTypeComposer());
111113
eDTC._gqcInputTypeComposer = eDTC.DInputObject._gqcInputTypeComposer;
112114

113115
// reorderFields(eDTC, eDTC.opts.reorderFields, eDTC.discriminatorKey);
114116
eDTC.schemaComposer.addSchemaMustHaveType(eDTC as any);
115117

116-
// prepare Base Resolvers
117-
// prepareBaseResolvers(eDTC);
118-
119118
// cleanup baseTC
120119
schemaComposer.delete(baseTC.getTypeName());
121120
return eDTC as any;
@@ -125,8 +124,7 @@ export class EDiscriminatorTypeComposer<TSource, TContext> extends InterfaceType
125124
model: Model<any, any>,
126125
baseTC: ObjectTypeComposer<any, TContext>
127126
): EDiscriminatorTypeComposer<TSource, TContext> {
128-
this.removeOtherFields('');
129-
this.setFields(baseTC.getFields());
127+
this.setFields(baseTC.getFields()); // should be overriden at internal setField call?
130128
this.DInputObject.setFields(baseTC.getFields());
131129

132130
const discriminators = model.discriminators || model.schema.discriminators;
@@ -172,6 +170,7 @@ export class EDiscriminatorTypeComposer<TSource, TContext> extends InterfaceType
172170
this._addFieldToInputOTC(fieldName, field);
173171
});
174172

173+
// make field optional on input if not from baseTC, since we cannot specify individual union types, but rather must produce an input object type that can accept all union types at once
175174
this.DInputObject.makeFieldNullable(
176175
discrimTC.getFieldNames().filter((field) => !baseTC.hasField(field))
177176
);

0 commit comments

Comments
 (0)