Skip to content

Commit 0c05f32

Browse files
committed
f
1 parent 049eae4 commit 0c05f32

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

src/execution/IncrementalGraph.ts

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type SubsequentResultNode = DeferredFragmentNode | StreamRecord;
3636
* @internal
3737
*/
3838
export class IncrementalGraph {
39-
private _pending: Set<SubsequentResultNode>;
39+
private _rootNodes: Set<SubsequentResultNode>;
4040
private _deferredFragmentNodes: Map<
4141
DeferredFragmentRecord,
4242
DeferredFragmentNode
@@ -48,7 +48,7 @@ export class IncrementalGraph {
4848
>;
4949

5050
constructor() {
51-
this._pending = new Set();
51+
this._rootNodes = new Set();
5252
this._deferredFragmentNodes = new Map();
5353
this._completedQueue = [];
5454
this._nextQueue = [];
@@ -57,13 +57,13 @@ export class IncrementalGraph {
5757
getNewPending(
5858
incrementalDataRecords: ReadonlyArray<IncrementalDataRecord>,
5959
): ReadonlyArray<SubsequentResultRecord> {
60-
const newPending = new Set<SubsequentResultNode>();
60+
const initialResultChildren = new Set<SubsequentResultNode>();
6161
this._addIncrementalDataRecords(
6262
incrementalDataRecords,
6363
undefined,
64-
newPending,
64+
initialResultChildren,
6565
);
66-
return this._pendingNodesToResults(newPending);
66+
return this._promoteNonEmptyToRoot(initialResultChildren);
6767
}
6868

6969
addCompletedReconcilableDeferredGroupedFieldSet(
@@ -122,7 +122,7 @@ export class IncrementalGraph {
122122
}
123123

124124
hasNext(): boolean {
125-
return this._pending.size > 0;
125+
return this._rootNodes.size > 0;
126126
}
127127

128128
completeDeferredFragment(deferredFragmentRecord: DeferredFragmentRecord):
@@ -137,7 +137,7 @@ export class IncrementalGraph {
137137
// TODO: add test case?
138138
/* c8 ignore next 3 */
139139
if (deferredFragmentNode === undefined) {
140-
return undefined;
140+
return;
141141
}
142142
if (deferredFragmentNode.deferredGroupedFieldSetRecords.size > 0) {
143143
return;
@@ -156,7 +156,7 @@ export class IncrementalGraph {
156156
);
157157
}
158158
}
159-
const newPending = this._pendingNodesToResults(
159+
const newPending = this._promoteNonEmptyToRoot(
160160
deferredFragmentNode.children,
161161
);
162162
return { newPending, reconcilableResults };
@@ -188,8 +188,8 @@ export class IncrementalGraph {
188188
}
189189

190190
private _removePending(subsequentResultNode: SubsequentResultNode): void {
191-
this._pending.delete(subsequentResultNode);
192-
if (this._pending.size === 0) {
191+
this._rootNodes.delete(subsequentResultNode);
192+
if (this._rootNodes.size === 0) {
193193
for (const resolve of this._nextQueue) {
194194
resolve({ value: undefined, done: true });
195195
}
@@ -199,14 +199,14 @@ export class IncrementalGraph {
199199
private _addIncrementalDataRecords(
200200
incrementalDataRecords: ReadonlyArray<IncrementalDataRecord>,
201201
parents: ReadonlyArray<DeferredFragmentRecord> | undefined,
202-
newPending?: Set<SubsequentResultNode> | undefined,
202+
initialResultChildren?: Set<SubsequentResultNode> | undefined,
203203
): void {
204204
for (const incrementalDataRecord of incrementalDataRecords) {
205205
if (isDeferredGroupedFieldSetRecord(incrementalDataRecord)) {
206206
for (const deferredFragmentRecord of incrementalDataRecord.deferredFragmentRecords) {
207207
const deferredFragmentNode = this._addDeferredFragmentNode(
208208
deferredFragmentRecord,
209-
newPending,
209+
initialResultChildren,
210210
);
211211
deferredFragmentNode.deferredGroupedFieldSetRecords.add(
212212
incrementalDataRecord,
@@ -216,21 +216,21 @@ export class IncrementalGraph {
216216
this._onDeferredGroupedFieldSet(incrementalDataRecord);
217217
}
218218
} else if (parents === undefined) {
219-
invariant(newPending !== undefined);
220-
newPending.add(incrementalDataRecord);
219+
invariant(initialResultChildren !== undefined);
220+
initialResultChildren.add(incrementalDataRecord);
221221
} else {
222222
for (const parent of parents) {
223223
const deferredFragmentNode = this._addDeferredFragmentNode(
224224
parent,
225-
newPending,
225+
initialResultChildren,
226226
);
227227
deferredFragmentNode.children.add(incrementalDataRecord);
228228
}
229229
}
230230
}
231231
}
232232

233-
private _pendingNodesToResults(
233+
private _promoteNonEmptyToRoot(
234234
newPendingNodes: Set<SubsequentResultNode>,
235235
): ReadonlyArray<SubsequentResultRecord> {
236236
const newPendingResults: Array<SubsequentResultRecord> = [];
@@ -242,7 +242,7 @@ export class IncrementalGraph {
242242
this._onDeferredGroupedFieldSet(deferredGroupedFieldSetRecord);
243243
}
244244
}
245-
this._pending.add(node);
245+
this._rootNodes.add(node);
246246
newPendingResults.push(node.deferredFragmentRecord);
247247
continue;
248248
}
@@ -251,7 +251,7 @@ export class IncrementalGraph {
251251
newPendingNodes.add(child);
252252
}
253253
} else {
254-
this._pending.add(node);
254+
this._rootNodes.add(node);
255255
newPendingResults.push(node);
256256

257257
// eslint-disable-next-line @typescript-eslint/no-floating-promises
@@ -266,7 +266,7 @@ export class IncrementalGraph {
266266
): boolean {
267267
return this._fragmentsToNodes(
268268
deferredGroupedFieldSetRecord.deferredFragmentRecords,
269-
).some((node) => this._pending.has(node));
269+
).some((node) => this._rootNodes.has(node));
270270
}
271271

272272
private _fragmentsToNodes(
@@ -281,7 +281,7 @@ export class IncrementalGraph {
281281

282282
private _addDeferredFragmentNode(
283283
deferredFragmentRecord: DeferredFragmentRecord,
284-
newPending: Set<SubsequentResultNode> | undefined,
284+
initialResultChildren: Set<SubsequentResultNode> | undefined,
285285
): DeferredFragmentNode {
286286
let deferredFragmentNode = this._deferredFragmentNodes.get(
287287
deferredFragmentRecord,
@@ -301,11 +301,14 @@ export class IncrementalGraph {
301301
);
302302
const parent = deferredFragmentRecord.parent;
303303
if (parent === undefined) {
304-
invariant(newPending !== undefined);
305-
newPending.add(deferredFragmentNode);
304+
invariant(initialResultChildren !== undefined);
305+
initialResultChildren.add(deferredFragmentNode);
306306
return deferredFragmentNode;
307307
}
308-
const parentNode = this._addDeferredFragmentNode(parent, newPending);
308+
const parentNode = this._addDeferredFragmentNode(
309+
parent,
310+
initialResultChildren,
311+
);
309312
parentNode.children.add(deferredFragmentNode);
310313
return deferredFragmentNode;
311314
}

0 commit comments

Comments
 (0)