@@ -7,24 +7,21 @@ import type { GraphQLError } from '../error/GraphQLError.js';
77
88import type {
99 DeferredFragmentRecord ,
10- DeferredGroupedFieldSetRecord ,
10+ DeliveryGroup ,
1111 IncrementalDataRecord ,
1212 IncrementalDataRecordResult ,
13- ReconcilableDeferredGroupedFieldSetResult ,
13+ PendingExecutionGroup ,
1414 StreamItemRecord ,
1515 StreamRecord ,
16- SubsequentResultRecord ,
17- } from './types.js' ;
18- import {
19- isDeferredFragmentRecord ,
20- isDeferredGroupedFieldSetRecord ,
16+ SuccessfulExecutionGroup ,
2117} from './types.js' ;
18+ import { isDeferredFragmentRecord , isPendingExecutionGroup } from './types.js' ;
2219
2320/**
2421 * @internal
2522 */
2623export class IncrementalGraph {
27- private _rootNodes : Set < SubsequentResultRecord > ;
24+ private _rootNodes : Set < DeliveryGroup > ;
2825
2926 private _completedQueue : Array < IncrementalDataRecordResult > ;
3027 private _nextQueue : Array <
@@ -39,8 +36,8 @@ export class IncrementalGraph {
3936
4037 getNewRootNodes (
4138 incrementalDataRecords : ReadonlyArray < IncrementalDataRecord > ,
42- ) : ReadonlyArray < SubsequentResultRecord > {
43- const initialResultChildren = new Set < SubsequentResultRecord > ( ) ;
39+ ) : ReadonlyArray < DeliveryGroup > {
40+ const initialResultChildren = new Set < DeliveryGroup > ( ) ;
4441 this . _addIncrementalDataRecords (
4542 incrementalDataRecords ,
4643 undefined ,
@@ -49,23 +46,25 @@ export class IncrementalGraph {
4946 return this . _promoteNonEmptyToRoot ( initialResultChildren ) ;
5047 }
5148
52- addCompletedReconcilableDeferredGroupedFieldSet (
53- reconcilableResult : ReconcilableDeferredGroupedFieldSetResult ,
49+ addCompletedSuccessfulExecutionGroup (
50+ successfulExecutionGroup : SuccessfulExecutionGroup ,
5451 ) : void {
55- for ( const deferredFragmentRecord of reconcilableResult
56- . deferredGroupedFieldSetRecord . deferredFragmentRecords ) {
57- deferredFragmentRecord . deferredGroupedFieldSetRecords . delete (
58- reconcilableResult . deferredGroupedFieldSetRecord ,
52+ for ( const deferredFragmentRecord of successfulExecutionGroup
53+ . pendingExecutionGroup . deferredFragmentRecords ) {
54+ deferredFragmentRecord . pendingExecutionGroups . delete (
55+ successfulExecutionGroup . pendingExecutionGroup ,
56+ ) ;
57+ deferredFragmentRecord . successfulExecutionGroups . add (
58+ successfulExecutionGroup ,
5959 ) ;
60- deferredFragmentRecord . reconcilableResults . add ( reconcilableResult ) ;
6160 }
6261
63- const incrementalDataRecords = reconcilableResult . incrementalDataRecords ;
62+ const incrementalDataRecords =
63+ successfulExecutionGroup . incrementalDataRecords ;
6464 if ( incrementalDataRecords !== undefined ) {
6565 this . _addIncrementalDataRecords (
6666 incrementalDataRecords ,
67- reconcilableResult . deferredGroupedFieldSetRecord
68- . deferredFragmentRecords ,
67+ successfulExecutionGroup . pendingExecutionGroup . deferredFragmentRecords ,
6968 ) ;
7069 }
7170 }
@@ -104,32 +103,32 @@ export class IncrementalGraph {
104103
105104 completeDeferredFragment ( deferredFragmentRecord : DeferredFragmentRecord ) :
106105 | {
107- newRootNodes : ReadonlyArray < SubsequentResultRecord > ;
108- reconcilableResults : ReadonlyArray < ReconcilableDeferredGroupedFieldSetResult > ;
106+ newRootNodes : ReadonlyArray < DeliveryGroup > ;
107+ successfulExecutionGroups : ReadonlyArray < SuccessfulExecutionGroup > ;
109108 }
110109 | undefined {
111110 if (
112111 ! this . _rootNodes . has ( deferredFragmentRecord ) ||
113- deferredFragmentRecord . deferredGroupedFieldSetRecords . size > 0
112+ deferredFragmentRecord . pendingExecutionGroups . size > 0
114113 ) {
115114 return ;
116115 }
117- const reconcilableResults = Array . from (
118- deferredFragmentRecord . reconcilableResults ,
116+ const successfulExecutionGroups = Array . from (
117+ deferredFragmentRecord . successfulExecutionGroups ,
119118 ) ;
120119 this . _removeRootNode ( deferredFragmentRecord ) ;
121- for ( const reconcilableResult of reconcilableResults ) {
122- for ( const otherDeferredFragmentRecord of reconcilableResult
123- . deferredGroupedFieldSetRecord . deferredFragmentRecords ) {
124- otherDeferredFragmentRecord . reconcilableResults . delete (
125- reconcilableResult ,
120+ for ( const successfulExecutionGroup of successfulExecutionGroups ) {
121+ for ( const otherDeferredFragmentRecord of successfulExecutionGroup
122+ . pendingExecutionGroup . deferredFragmentRecords ) {
123+ otherDeferredFragmentRecord . successfulExecutionGroups . delete (
124+ successfulExecutionGroup ,
126125 ) ;
127126 }
128127 }
129128 const newRootNodes = this . _promoteNonEmptyToRoot (
130129 deferredFragmentRecord . children ,
131130 ) ;
132- return { newRootNodes, reconcilableResults } ;
131+ return { newRootNodes, successfulExecutionGroups } ;
133132 }
134133
135134 removeDeferredFragment (
@@ -146,30 +145,28 @@ export class IncrementalGraph {
146145 this . _removeRootNode ( streamRecord ) ;
147146 }
148147
149- private _removeRootNode (
150- subsequentResultRecord : SubsequentResultRecord ,
151- ) : void {
152- this . _rootNodes . delete ( subsequentResultRecord ) ;
148+ private _removeRootNode ( deliveryGroup : DeliveryGroup ) : void {
149+ this . _rootNodes . delete ( deliveryGroup ) ;
153150 }
154151
155152 private _addIncrementalDataRecords (
156153 incrementalDataRecords : ReadonlyArray < IncrementalDataRecord > ,
157154 parents : ReadonlyArray < DeferredFragmentRecord > | undefined ,
158- initialResultChildren ?: Set < SubsequentResultRecord > | undefined ,
155+ initialResultChildren ?: Set < DeliveryGroup > | undefined ,
159156 ) : void {
160157 for ( const incrementalDataRecord of incrementalDataRecords ) {
161- if ( isDeferredGroupedFieldSetRecord ( incrementalDataRecord ) ) {
158+ if ( isPendingExecutionGroup ( incrementalDataRecord ) ) {
162159 for ( const deferredFragmentRecord of incrementalDataRecord . deferredFragmentRecords ) {
163160 this . _addDeferredFragment (
164161 deferredFragmentRecord ,
165162 initialResultChildren ,
166163 ) ;
167- deferredFragmentRecord . deferredGroupedFieldSetRecords . add (
164+ deferredFragmentRecord . pendingExecutionGroups . add (
168165 incrementalDataRecord ,
169166 ) ;
170167 }
171168 if ( this . _completesRootNode ( incrementalDataRecord ) ) {
172- this . _onDeferredGroupedFieldSet ( incrementalDataRecord ) ;
169+ this . _onExecutionGroup ( incrementalDataRecord ) ;
173170 }
174171 } else if ( parents === undefined ) {
175172 invariant ( initialResultChildren !== undefined ) ;
@@ -184,15 +181,15 @@ export class IncrementalGraph {
184181 }
185182
186183 private _promoteNonEmptyToRoot (
187- maybeEmptyNewRootNodes : Set < SubsequentResultRecord > ,
188- ) : ReadonlyArray < SubsequentResultRecord > {
189- const newRootNodes : Array < SubsequentResultRecord > = [ ] ;
184+ maybeEmptyNewRootNodes : Set < DeliveryGroup > ,
185+ ) : ReadonlyArray < DeliveryGroup > {
186+ const newRootNodes : Array < DeliveryGroup > = [ ] ;
190187 for ( const node of maybeEmptyNewRootNodes ) {
191188 if ( isDeferredFragmentRecord ( node ) ) {
192- if ( node . deferredGroupedFieldSetRecords . size > 0 ) {
193- for ( const deferredGroupedFieldSetRecord of node . deferredGroupedFieldSetRecords ) {
194- if ( ! this . _completesRootNode ( deferredGroupedFieldSetRecord ) ) {
195- this . _onDeferredGroupedFieldSet ( deferredGroupedFieldSetRecord ) ;
189+ if ( node . pendingExecutionGroups . size > 0 ) {
190+ for ( const pendingExecutionGroup of node . pendingExecutionGroups ) {
191+ if ( ! this . _completesRootNode ( pendingExecutionGroup ) ) {
192+ this . _onExecutionGroup ( pendingExecutionGroup ) ;
196193 }
197194 }
198195 this . _rootNodes . add ( node ) ;
@@ -214,16 +211,16 @@ export class IncrementalGraph {
214211 }
215212
216213 private _completesRootNode (
217- deferredGroupedFieldSetRecord : DeferredGroupedFieldSetRecord ,
214+ pendingExecutionGroup : PendingExecutionGroup ,
218215 ) : boolean {
219- return deferredGroupedFieldSetRecord . deferredFragmentRecords . some (
216+ return pendingExecutionGroup . deferredFragmentRecords . some (
220217 ( deferredFragmentRecord ) => this . _rootNodes . has ( deferredFragmentRecord ) ,
221218 ) ;
222219 }
223220
224221 private _addDeferredFragment (
225222 deferredFragmentRecord : DeferredFragmentRecord ,
226- initialResultChildren : Set < SubsequentResultRecord > | undefined ,
223+ initialResultChildren : Set < DeliveryGroup > | undefined ,
227224 ) : void {
228225 if ( this . _rootNodes . has ( deferredFragmentRecord ) ) {
229226 return ;
@@ -238,14 +235,14 @@ export class IncrementalGraph {
238235 this . _addDeferredFragment ( parent , initialResultChildren ) ;
239236 }
240237
241- private _onDeferredGroupedFieldSet (
242- deferredGroupedFieldSetRecord : DeferredGroupedFieldSetRecord ,
238+ private _onExecutionGroup (
239+ pendingExecutionGroup : PendingExecutionGroup ,
243240 ) : void {
244- let deferredGroupedFieldSetResult = deferredGroupedFieldSetRecord . result ;
245- if ( ! ( deferredGroupedFieldSetResult instanceof BoxedPromiseOrValue ) ) {
246- deferredGroupedFieldSetResult = deferredGroupedFieldSetResult ( ) ;
241+ let completedExecutionGroup = pendingExecutionGroup . result ;
242+ if ( ! ( completedExecutionGroup instanceof BoxedPromiseOrValue ) ) {
243+ completedExecutionGroup = completedExecutionGroup ( ) ;
247244 }
248- const value = deferredGroupedFieldSetResult . value ;
245+ const value = completedExecutionGroup . value ;
249246 if ( isPromise ( value ) ) {
250247 // eslint-disable-next-line @typescript-eslint/no-floating-promises
251248 value . then ( ( resolved ) => this . _enqueue ( resolved ) ) ;
0 commit comments