@@ -8,7 +8,7 @@ import type {
8
8
GraphQLFormattedError ,
9
9
} from '../error/GraphQLError.js' ;
10
10
11
- import type { GroupedFieldSet } from './collectFields.js' ;
11
+ import type { DeferUsage , GroupedFieldSet } from './collectFields.js' ;
12
12
13
13
interface IncrementalUpdate < TData = unknown , TExtensions = ObjMap < unknown > > {
14
14
pending : ReadonlyArray < PendingResult > ;
@@ -611,8 +611,11 @@ export class IncrementalPublisher {
611
611
const { data, deferredFragmentRecords } = deferredGroupedFieldSetRecord ;
612
612
let maxLength = deferredFragmentRecords [ 0 ] . path . length ;
613
613
let maxIndex = 0 ;
614
- for ( let i = 1 ; i < deferredFragmentRecords . length ; i ++ ) {
614
+ for ( let i = 0 ; i < deferredFragmentRecords . length ; i ++ ) {
615
615
const deferredFragmentRecord = deferredFragmentRecords [ i ] ;
616
+ if ( deferredFragmentRecord . id == null ) {
617
+ continue ;
618
+ }
616
619
const length = deferredFragmentRecord . path . length ;
617
620
if ( length > maxLength ) {
618
621
maxLength = length ;
@@ -763,7 +766,6 @@ export class DeferredGroupedFieldSetRecord {
763
766
path : ReadonlyArray < string | number > ;
764
767
deferredFragmentRecords : ReadonlyArray < DeferredFragmentRecord > ;
765
768
groupedFieldSet : GroupedFieldSet ;
766
- shouldInitiateDefer : boolean ;
767
769
errors : Array < GraphQLError > ;
768
770
data : ObjMap < unknown > | undefined ;
769
771
sent : boolean ;
@@ -772,12 +774,10 @@ export class DeferredGroupedFieldSetRecord {
772
774
path : Path | undefined ;
773
775
deferredFragmentRecords : ReadonlyArray < DeferredFragmentRecord > ;
774
776
groupedFieldSet : GroupedFieldSet ;
775
- shouldInitiateDefer : boolean ;
776
777
} ) {
777
778
this . path = pathToArray ( opts . path ) ;
778
779
this . deferredFragmentRecords = opts . deferredFragmentRecords ;
779
780
this . groupedFieldSet = opts . groupedFieldSet ;
780
- this . shouldInitiateDefer = opts . shouldInitiateDefer ;
781
781
this . errors = [ ] ;
782
782
this . sent = false ;
783
783
}
@@ -786,6 +786,7 @@ export class DeferredGroupedFieldSetRecord {
786
786
/** @internal */
787
787
export class DeferredFragmentRecord {
788
788
path : ReadonlyArray < string | number > ;
789
+ deferUsage : DeferUsage ;
789
790
label : string | undefined ;
790
791
id : string | undefined ;
791
792
children : Set < SubsequentResultRecord > ;
@@ -795,9 +796,10 @@ export class DeferredFragmentRecord {
795
796
pendingSent ?: boolean ;
796
797
_pending : Set < DeferredGroupedFieldSetRecord > ;
797
798
798
- constructor ( opts : { path : Path | undefined ; label : string | undefined } ) {
799
+ constructor ( opts : { path : Path | undefined ; deferUsage : DeferUsage } ) {
799
800
this . path = pathToArray ( opts . path ) ;
800
- this . label = opts . label ;
801
+ this . label = opts . deferUsage . label ;
802
+ this . deferUsage = opts . deferUsage ;
801
803
this . children = new Set ( ) ;
802
804
this . filtered = false ;
803
805
this . deferredGroupedFieldSetRecords = new Set ( ) ;
0 commit comments