@@ -446,15 +446,7 @@ export class SelectionSetToObject<Config extends ParsedDocumentsConfig = ParsedD
446446    for  ( const  selectionNode  of  selectionNodes )  { 
447447      if  ( 'kind'  in  selectionNode )  { 
448448        if  ( selectionNode . kind  ===  'Field' )  { 
449-           if  ( ! selectionNode . selectionSet )  { 
450-             if  ( selectionNode . alias )  { 
451-               primitiveAliasFields . set ( selectionNode . alias . value ,  selectionNode ) ; 
452-             }  else  if  ( selectionNode . name . value  ===  '__typename' )  { 
453-               requireTypename  =  true ; 
454-             }  else  { 
455-               primitiveFields . set ( selectionNode . name . value ,  selectionNode ) ; 
456-             } 
457-           }  else  { 
449+           if  ( selectionNode . selectionSet )  { 
458450            let  selectedField : GraphQLField < any ,  any ,  any >  =  null ; 
459451
460452            const  fields  =  parentSchemaType . getFields ( ) ; 
@@ -470,21 +462,27 @@ export class SelectionSetToObject<Config extends ParsedDocumentsConfig = ParsedD
470462
471463            const  fieldName  =  getFieldNodeNameValue ( selectionNode ) ; 
472464            let  linkFieldNode  =  linkFieldSelectionSets . get ( fieldName ) ; 
473-             if  ( ! linkFieldNode )  { 
474-               linkFieldNode  =  { 
475-                 selectedFieldType : selectedField . type , 
476-                 field : selectionNode , 
477-               } ; 
478-             }  else  { 
465+             if  ( linkFieldNode )  { 
479466              linkFieldNode  =  { 
480467                ...linkFieldNode , 
481468                field : { 
482469                  ...linkFieldNode . field , 
483470                  selectionSet : mergeSelectionSets ( linkFieldNode . field . selectionSet ,  selectionNode . selectionSet ) , 
484471                } , 
485472              } ; 
473+             }  else  { 
474+               linkFieldNode  =  { 
475+                 selectedFieldType : selectedField . type , 
476+                 field : selectionNode , 
477+               } ; 
486478            } 
487479            linkFieldSelectionSets . set ( fieldName ,  linkFieldNode ) ; 
480+           }  else  if  ( selectionNode . alias )  { 
481+             primitiveAliasFields . set ( selectionNode . alias . value ,  selectionNode ) ; 
482+           }  else  if  ( selectionNode . name . value  ===  '__typename' )  { 
483+             requireTypename  =  true ; 
484+           }  else  { 
485+             primitiveFields . set ( selectionNode . name . value ,  selectionNode ) ; 
488486          } 
489487        }  else  if  ( selectionNode . kind  ===  'Directive' )  { 
490488          if  ( [ 'skip' ,  'include' ] . includes ( selectionNode ?. name ?. value ) )  { 
0 commit comments