File tree Expand file tree Collapse file tree 3 files changed +11
-13
lines changed Expand file tree Collapse file tree 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 @@ -231,13 +231,13 @@ class IncrementalPublisher {
231
231
if ( isFailedExecutionGroup ( completedExecutionGroup ) ) {
232
232
for ( const deferredFragmentRecord of completedExecutionGroup
233
233
. pendingExecutionGroup . deferredFragmentRecords ) {
234
- const id = deferredFragmentRecord . id ;
235
- if (
236
- ! this . _incrementalGraph . removeDeferredFragment ( deferredFragmentRecord )
237
- ) {
238
- // This can occur if multiple deferred grouped field sets error for a fragment.
234
+ const failed = deferredFragmentRecord . failed ;
235
+ if ( failed ) {
239
236
continue ;
240
237
}
238
+ deferredFragmentRecord . failed = true ;
239
+ const id = deferredFragmentRecord . id ;
240
+ this . _incrementalGraph . removeDeferredFragment ( deferredFragmentRecord ) ;
241
241
invariant ( id !== undefined ) ;
242
242
context . completed . push ( {
243
243
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