File tree 3 files changed +11
-13
lines changed
3 files changed +11
-13
lines changed Original file line number Diff line number Diff line change @@ -132,14 +132,8 @@ export class IncrementalGraph {
132
132
return { newRootNodes, successfulExecutionGroups } ;
133
133
}
134
134
135
- removeDeferredFragment (
136
- deferredFragmentRecord : DeferredFragmentRecord ,
137
- ) : boolean {
138
- if ( ! this . _rootNodes . has ( deferredFragmentRecord ) ) {
139
- return false ;
140
- }
135
+ removeDeferredFragment ( deferredFragmentRecord : DeferredFragmentRecord ) : void {
141
136
this . _rootNodes . delete ( deferredFragmentRecord ) ;
142
- return true ;
143
137
}
144
138
145
139
removeStream ( streamRecord : StreamRecord ) : void {
@@ -219,7 +213,10 @@ export class IncrementalGraph {
219
213
deferredFragmentRecord : DeferredFragmentRecord ,
220
214
initialResultChildren : Set < DeliveryGroup > | undefined ,
221
215
) : void {
222
- if ( this . _rootNodes . has ( deferredFragmentRecord ) ) {
216
+ if (
217
+ deferredFragmentRecord . failed ||
218
+ this . _rootNodes . has ( deferredFragmentRecord )
219
+ ) {
223
220
return ;
224
221
}
225
222
const parent = deferredFragmentRecord . parent ;
Original file line number Diff line number Diff line change @@ -228,13 +228,13 @@ class IncrementalPublisher {
228
228
if ( isFailedExecutionGroup ( completedExecutionGroup ) ) {
229
229
for ( const deferredFragmentRecord of completedExecutionGroup
230
230
. pendingExecutionGroup . deferredFragmentRecords ) {
231
- const id = deferredFragmentRecord . id ;
232
- if (
233
- ! this . _incrementalGraph . removeDeferredFragment ( deferredFragmentRecord )
234
- ) {
235
- // This can occur if multiple deferred grouped field sets error for a fragment.
231
+ const failed = deferredFragmentRecord . failed ;
232
+ if ( failed ) {
236
233
continue ;
237
234
}
235
+ deferredFragmentRecord . failed = true ;
236
+ const id = deferredFragmentRecord . id ;
237
+ this . _incrementalGraph . removeDeferredFragment ( deferredFragmentRecord ) ;
238
238
invariant ( id !== undefined ) ;
239
239
context . completed . push ( {
240
240
id,
Original file line number Diff line number Diff line change @@ -224,6 +224,7 @@ export class DeferredFragmentRecord {
224
224
pendingExecutionGroups : Set < PendingExecutionGroup > ;
225
225
successfulExecutionGroups : Set < SuccessfulExecutionGroup > ;
226
226
children : Set < DeliveryGroup > ;
227
+ failed : true | undefined ;
227
228
228
229
constructor (
229
230
path : Path | undefined ,
You can’t perform that action at this time.
0 commit comments