@@ -147,9 +147,7 @@ export function convertModelToGraphQL(
147147 } ;
148148 } ) ;
149149
150- /* ::` */
151150 typeComposer . addFields ( graphqlFields ) ;
152- /* ::` */
153151 return typeComposer . getType ( ) ;
154152}
155153
@@ -198,7 +196,7 @@ export function deriveComplexType(field: MongooseFieldT): ComplexTypesT {
198196 return ComplexTypes . SCALAR ;
199197}
200198
201- function removePseudoIdField ( gqType : GraphQLOutputType ) : GraphQLOutputType {
199+ function removePseudoIdField ( gqType : GraphQLObjectType ) : GraphQLObjectType {
202200 // remove pseudo object id mongoose field
203201 const composer = new TypeComposer ( gqType ) ;
204202 const gqFields = composer . getFields ( ) ;
@@ -255,10 +253,15 @@ export function embeddedToGraphQL(
255253 }
256254
257255 const typeName = `${ prefix } ${ capitalize ( fieldName ) } ` ;
256+ // $FlowFixMe
258257 const fieldAsModel : MongooseModelT = field ;
259- const gqType = convertModelToGraphQL ( fieldAsModel , typeName ) ;
258+ let gqType = convertModelToGraphQL ( fieldAsModel , typeName ) ;
260259
261- return removePseudoIdField ( gqType ) ;
260+ if ( gqType instanceof GraphQLObjectType ) {
261+ gqType = removePseudoIdField ( gqType ) ;
262+ }
263+
264+ return gqType ;
262265}
263266
264267
@@ -296,8 +299,11 @@ export function documentArrayToGraphQL(
296299
297300 const typeName = `${ prefix } ${ capitalize ( _getFieldName ( field ) ) } ` ;
298301
299- const outputType = convertModelToGraphQL ( field , typeName ) ;
300- return new GraphQLList ( removePseudoIdField ( outputType ) ) ;
302+ let outputType = convertModelToGraphQL ( field , typeName ) ;
303+ if ( outputType instanceof GraphQLObjectType ) {
304+ outputType = removePseudoIdField ( outputType ) ;
305+ }
306+ return new GraphQLList ( outputType ) ;
301307}
302308
303309
@@ -314,8 +320,8 @@ export function referenceToGraphQL(
314320 const refModelName = objectPath . get ( field , 'options.ref' ) ;
315321 if ( refModelName ) {
316322 return GQLReference ;
317- throw new Error ( 'Mongoose REFERENCE to graphQL TYPE not implemented yet. '
318- + `Field ${ _getFieldName ( field ) } ` ) ;
323+ // throw new Error('Mongoose REFERENCE to graphQL TYPE not implemented yet. '
324+ // + `Field ${_getFieldName(field)}`);
319325 // Storage.UnresolvedRefs.setSubKey(parentTypeName, fieldName, { refModelName });
320326 // return GraphQLReference;
321327 }
0 commit comments