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 {
132132 return { newRootNodes, successfulExecutionGroups } ;
133133 }
134134
135- removeDeferredFragment (
136- deferredFragmentRecord : DeferredFragmentRecord ,
137- ) : boolean {
138- if ( ! this . _rootNodes . has ( deferredFragmentRecord ) ) {
139- return false ;
140- }
135+ removeDeferredFragment ( deferredFragmentRecord : DeferredFragmentRecord ) : void {
141136 this . _rootNodes . delete ( deferredFragmentRecord ) ;
142- return true ;
143137 }
144138
145139 removeStream ( streamRecord : StreamRecord ) : void {
@@ -219,7 +213,10 @@ export class IncrementalGraph {
219213 deferredFragmentRecord : DeferredFragmentRecord ,
220214 initialResultChildren : Set < DeliveryGroup > | undefined ,
221215 ) : void {
222- if ( this . _rootNodes . has ( deferredFragmentRecord ) ) {
216+ if (
217+ deferredFragmentRecord . failed ||
218+ this . _rootNodes . has ( deferredFragmentRecord )
219+ ) {
223220 return ;
224221 }
225222 const parent = deferredFragmentRecord . parent ;
Original file line number Diff line number Diff line change @@ -231,13 +231,13 @@ class IncrementalPublisher {
231231 if ( isFailedExecutionGroup ( completedExecutionGroup ) ) {
232232 for ( const deferredFragmentRecord of completedExecutionGroup
233233 . 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 ) {
239236 continue ;
240237 }
238+ deferredFragmentRecord . failed = true ;
239+ const id = deferredFragmentRecord . id ;
240+ this . _incrementalGraph . removeDeferredFragment ( deferredFragmentRecord ) ;
241241 invariant ( id !== undefined ) ;
242242 context . completed . push ( {
243243 id,
Original file line number Diff line number Diff line change @@ -224,6 +224,7 @@ export class DeferredFragmentRecord {
224224 pendingExecutionGroups : Set < PendingExecutionGroup > ;
225225 successfulExecutionGroups : Set < SuccessfulExecutionGroup > ;
226226 children : Set < DeliveryGroup > ;
227+ failed : true | undefined ;
227228
228229 constructor (
229230 path : Path | undefined ,
You can’t perform that action at this time.
0 commit comments