@@ -8,7 +8,7 @@ import type {
88 GraphQLFormattedError ,
99} from '../error/GraphQLError.js' ;
1010
11- import type { GroupedFieldSet } from './collectFields.js' ;
11+ import type { DeferUsage , GroupedFieldSet } from './collectFields.js' ;
1212
1313interface IncrementalUpdate < TData = unknown , TExtensions = ObjMap < unknown > > {
1414 pending : ReadonlyArray < PendingResult > ;
@@ -611,8 +611,11 @@ export class IncrementalPublisher {
611611 const { data, deferredFragmentRecords } = deferredGroupedFieldSetRecord ;
612612 let maxLength = deferredFragmentRecords [ 0 ] . path . length ;
613613 let maxIndex = 0 ;
614- for ( let i = 1 ; i < deferredFragmentRecords . length ; i ++ ) {
614+ for ( let i = 0 ; i < deferredFragmentRecords . length ; i ++ ) {
615615 const deferredFragmentRecord = deferredFragmentRecords [ i ] ;
616+ if ( deferredFragmentRecord . id == null ) {
617+ continue ;
618+ }
616619 const length = deferredFragmentRecord . path . length ;
617620 if ( length > maxLength ) {
618621 maxLength = length ;
@@ -763,7 +766,6 @@ export class DeferredGroupedFieldSetRecord {
763766 path : ReadonlyArray < string | number > ;
764767 deferredFragmentRecords : ReadonlyArray < DeferredFragmentRecord > ;
765768 groupedFieldSet : GroupedFieldSet ;
766- shouldInitiateDefer : boolean ;
767769 errors : Array < GraphQLError > ;
768770 data : ObjMap < unknown > | undefined ;
769771 sent : boolean ;
@@ -772,12 +774,10 @@ export class DeferredGroupedFieldSetRecord {
772774 path : Path | undefined ;
773775 deferredFragmentRecords : ReadonlyArray < DeferredFragmentRecord > ;
774776 groupedFieldSet : GroupedFieldSet ;
775- shouldInitiateDefer : boolean ;
776777 } ) {
777778 this . path = pathToArray ( opts . path ) ;
778779 this . deferredFragmentRecords = opts . deferredFragmentRecords ;
779780 this . groupedFieldSet = opts . groupedFieldSet ;
780- this . shouldInitiateDefer = opts . shouldInitiateDefer ;
781781 this . errors = [ ] ;
782782 this . sent = false ;
783783 }
@@ -786,6 +786,7 @@ export class DeferredGroupedFieldSetRecord {
786786/** @internal */
787787export class DeferredFragmentRecord {
788788 path : ReadonlyArray < string | number > ;
789+ deferUsage : DeferUsage ;
789790 label : string | undefined ;
790791 id : string | undefined ;
791792 children : Set < SubsequentResultRecord > ;
@@ -795,9 +796,10 @@ export class DeferredFragmentRecord {
795796 pendingSent ?: boolean ;
796797 _pending : Set < DeferredGroupedFieldSetRecord > ;
797798
798- constructor ( opts : { path : Path | undefined ; label : string | undefined } ) {
799+ constructor ( opts : { path : Path | undefined ; deferUsage : DeferUsage } ) {
799800 this . path = pathToArray ( opts . path ) ;
800- this . label = opts . label ;
801+ this . label = opts . deferUsage . label ;
802+ this . deferUsage = opts . deferUsage ;
801803 this . children = new Set ( ) ;
802804 this . filtered = false ;
803805 this . deferredGroupedFieldSetRecords = new Set ( ) ;
0 commit comments