Skip to content

Commit f772646

Browse files
committed
rename DeferredGroupedFieldSets
DeferredGroupedFieldSet => PendingExecutionGroup DeferredGroupedFieldSetResult => CompletedExecutionGroup ReconcilableDeferredGroupedFieldSetResult => SuccessfulExecutionGroup NonReconcilableDeferredGroupedFieldSetResult => FailedExecutionGroup
1 parent 4b0c113 commit f772646

File tree

4 files changed

+135
-151
lines changed

4 files changed

+135
-151
lines changed

src/execution/IncrementalGraph.ts

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,15 @@ import type { GraphQLError } from '../error/GraphQLError.js';
77

88
import type {
99
DeferredFragmentRecord,
10-
DeferredGroupedFieldSetRecord,
1110
IncrementalDataRecord,
1211
IncrementalDataRecordResult,
13-
ReconcilableDeferredGroupedFieldSetResult,
12+
PendingExecutionGroup,
1413
StreamItemRecord,
1514
StreamRecord,
1615
SubsequentResultRecord,
16+
SuccessfulExecutionGroup,
1717
} from './types.js';
18-
import {
19-
isDeferredFragmentRecord,
20-
isDeferredGroupedFieldSetRecord,
21-
} from './types.js';
18+
import { isDeferredFragmentRecord, isPendingExecutionGroup } from './types.js';
2219

2320
/**
2421
* @internal
@@ -49,23 +46,25 @@ export class IncrementalGraph {
4946
return this._promoteNonEmptyToRoot(initialResultChildren);
5047
}
5148

52-
addCompletedReconcilableDeferredGroupedFieldSet(
53-
reconcilableResult: ReconcilableDeferredGroupedFieldSetResult,
49+
addCompletedReconcilableExecutionGroup(
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
}
@@ -105,31 +104,31 @@ export class IncrementalGraph {
105104
completeDeferredFragment(deferredFragmentRecord: DeferredFragmentRecord):
106105
| {
107106
newRootNodes: ReadonlyArray<SubsequentResultRecord>;
108-
reconcilableResults: ReadonlyArray<ReconcilableDeferredGroupedFieldSetResult>;
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(
@@ -158,18 +157,18 @@ export class IncrementalGraph {
158157
initialResultChildren?: Set<SubsequentResultRecord> | undefined,
159158
): void {
160159
for (const incrementalDataRecord of incrementalDataRecords) {
161-
if (isDeferredGroupedFieldSetRecord(incrementalDataRecord)) {
160+
if (isPendingExecutionGroup(incrementalDataRecord)) {
162161
for (const deferredFragmentRecord of incrementalDataRecord.deferredFragmentRecords) {
163162
this._addDeferredFragment(
164163
deferredFragmentRecord,
165164
initialResultChildren,
166165
);
167-
deferredFragmentRecord.deferredGroupedFieldSetRecords.add(
166+
deferredFragmentRecord.pendingExecutionGroups.add(
168167
incrementalDataRecord,
169168
);
170169
}
171170
if (this._completesRootNode(incrementalDataRecord)) {
172-
this._onDeferredGroupedFieldSet(incrementalDataRecord);
171+
this._onExecutionGroup(incrementalDataRecord);
173172
}
174173
} else if (parents === undefined) {
175174
invariant(initialResultChildren !== undefined);
@@ -189,10 +188,10 @@ export class IncrementalGraph {
189188
const newRootNodes: Array<SubsequentResultRecord> = [];
190189
for (const node of maybeEmptyNewRootNodes) {
191190
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);
191+
if (node.pendingExecutionGroups.size > 0) {
192+
for (const pendingExecutionGroup of node.pendingExecutionGroups) {
193+
if (!this._completesRootNode(pendingExecutionGroup)) {
194+
this._onExecutionGroup(pendingExecutionGroup);
196195
}
197196
}
198197
this._rootNodes.add(node);
@@ -214,9 +213,9 @@ export class IncrementalGraph {
214213
}
215214

216215
private _completesRootNode(
217-
deferredGroupedFieldSetRecord: DeferredGroupedFieldSetRecord,
216+
pendingExecutionGroup: PendingExecutionGroup,
218217
): boolean {
219-
return deferredGroupedFieldSetRecord.deferredFragmentRecords.some(
218+
return pendingExecutionGroup.deferredFragmentRecords.some(
220219
(deferredFragmentRecord) => this._rootNodes.has(deferredFragmentRecord),
221220
);
222221
}
@@ -238,14 +237,14 @@ export class IncrementalGraph {
238237
this._addDeferredFragment(parent, initialResultChildren);
239238
}
240239

241-
private _onDeferredGroupedFieldSet(
242-
deferredGroupedFieldSetRecord: DeferredGroupedFieldSetRecord,
240+
private _onExecutionGroup(
241+
pendingExecutionGroup: PendingExecutionGroup,
243242
): void {
244-
let deferredGroupedFieldSetResult = deferredGroupedFieldSetRecord.result;
245-
if (!(deferredGroupedFieldSetResult instanceof BoxedPromiseOrValue)) {
246-
deferredGroupedFieldSetResult = deferredGroupedFieldSetResult();
243+
let completedExecutionGroup = pendingExecutionGroup.result;
244+
if (!(completedExecutionGroup instanceof BoxedPromiseOrValue)) {
245+
completedExecutionGroup = completedExecutionGroup();
247246
}
248-
const value = deferredGroupedFieldSetResult.value;
247+
const value = completedExecutionGroup.value;
249248
if (isPromise(value)) {
250249
// eslint-disable-next-line @typescript-eslint/no-floating-promises
251250
value.then((resolved) => this._enqueue(resolved));

src/execution/IncrementalPublisher.ts

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import type { GraphQLError } from '../error/GraphQLError.js';
77
import { IncrementalGraph } from './IncrementalGraph.js';
88
import type {
99
CancellableStreamRecord,
10+
CompletedExecutionGroup,
1011
CompletedResult,
1112
DeferredFragmentRecord,
12-
DeferredGroupedFieldSetResult,
1313
ExperimentalIncrementalExecutionResults,
1414
IncrementalDataRecord,
1515
IncrementalDataRecordResult,
@@ -24,8 +24,8 @@ import type {
2424
} from './types.js';
2525
import {
2626
isCancellableStreamRecord,
27-
isDeferredGroupedFieldSetResult,
28-
isNonReconcilableDeferredGroupedFieldSetResult,
27+
isCompletedExecutionGroup,
28+
isFailedExecutionGroup,
2929
} from './types.js';
3030

3131
export function buildIncrementalResponse(
@@ -207,27 +207,20 @@ class IncrementalPublisher {
207207
completedIncrementalData: IncrementalDataRecordResult,
208208
context: SubsequentIncrementalExecutionResultContext,
209209
): void {
210-
if (isDeferredGroupedFieldSetResult(completedIncrementalData)) {
211-
this._handleCompletedDeferredGroupedFieldSet(
212-
completedIncrementalData,
213-
context,
214-
);
210+
if (isCompletedExecutionGroup(completedIncrementalData)) {
211+
this._handleCompletedExecutionGroup(completedIncrementalData, context);
215212
} else {
216213
this._handleCompletedStreamItems(completedIncrementalData, context);
217214
}
218215
}
219216

220-
private _handleCompletedDeferredGroupedFieldSet(
221-
deferredGroupedFieldSetResult: DeferredGroupedFieldSetResult,
217+
private _handleCompletedExecutionGroup(
218+
completedExecutionGroup: CompletedExecutionGroup,
222219
context: SubsequentIncrementalExecutionResultContext,
223220
): void {
224-
if (
225-
isNonReconcilableDeferredGroupedFieldSetResult(
226-
deferredGroupedFieldSetResult,
227-
)
228-
) {
229-
for (const deferredFragmentRecord of deferredGroupedFieldSetResult
230-
.deferredGroupedFieldSetRecord.deferredFragmentRecords) {
221+
if (isFailedExecutionGroup(completedExecutionGroup)) {
222+
for (const deferredFragmentRecord of completedExecutionGroup
223+
.pendingExecutionGroup.deferredFragmentRecords) {
231224
const id = deferredFragmentRecord.id;
232225
if (
233226
!this._incrementalGraph.removeDeferredFragment(deferredFragmentRecord)
@@ -238,18 +231,18 @@ class IncrementalPublisher {
238231
invariant(id !== undefined);
239232
context.completed.push({
240233
id,
241-
errors: deferredGroupedFieldSetResult.errors,
234+
errors: completedExecutionGroup.errors,
242235
});
243236
}
244237
return;
245238
}
246239

247-
this._incrementalGraph.addCompletedReconcilableDeferredGroupedFieldSet(
248-
deferredGroupedFieldSetResult,
240+
this._incrementalGraph.addCompletedReconcilableExecutionGroup(
241+
completedExecutionGroup,
249242
);
250243

251-
for (const deferredFragmentRecord of deferredGroupedFieldSetResult
252-
.deferredGroupedFieldSetRecord.deferredFragmentRecords) {
244+
for (const deferredFragmentRecord of completedExecutionGroup
245+
.pendingExecutionGroup.deferredFragmentRecords) {
253246
const completion = this._incrementalGraph.completeDeferredFragment(
254247
deferredFragmentRecord,
255248
);
@@ -259,16 +252,16 @@ class IncrementalPublisher {
259252
const id = deferredFragmentRecord.id;
260253
invariant(id !== undefined);
261254
const incremental = context.incremental;
262-
const { newRootNodes, reconcilableResults } = completion;
255+
const { newRootNodes, successfulExecutionGroups } = completion;
263256
context.pending.push(...this._toPendingResults(newRootNodes));
264-
for (const reconcilableResult of reconcilableResults) {
257+
for (const successfulExecutionGroup of successfulExecutionGroups) {
265258
const { bestId, subPath } = this._getBestIdAndSubPath(
266259
id,
267260
deferredFragmentRecord,
268-
reconcilableResult,
261+
successfulExecutionGroup,
269262
);
270263
const incrementalEntry: IncrementalDeferResult = {
271-
...reconcilableResult.result,
264+
...successfulExecutionGroup.result,
272265
id: bestId,
273266
};
274267
if (subPath !== undefined) {
@@ -329,13 +322,13 @@ class IncrementalPublisher {
329322
private _getBestIdAndSubPath(
330323
initialId: string,
331324
initialDeferredFragmentRecord: DeferredFragmentRecord,
332-
deferredGroupedFieldSetResult: DeferredGroupedFieldSetResult,
325+
completedExecutionGroup: CompletedExecutionGroup,
333326
): { bestId: string; subPath: ReadonlyArray<string | number> | undefined } {
334327
let maxLength = pathToArray(initialDeferredFragmentRecord.path).length;
335328
let bestId = initialId;
336329

337-
for (const deferredFragmentRecord of deferredGroupedFieldSetResult
338-
.deferredGroupedFieldSetRecord.deferredFragmentRecords) {
330+
for (const deferredFragmentRecord of completedExecutionGroup
331+
.pendingExecutionGroup.deferredFragmentRecords) {
339332
if (deferredFragmentRecord === initialDeferredFragmentRecord) {
340333
continue;
341334
}
@@ -352,7 +345,7 @@ class IncrementalPublisher {
352345
bestId = id;
353346
}
354347
}
355-
const subPath = deferredGroupedFieldSetResult.path.slice(maxLength);
348+
const subPath = completedExecutionGroup.path.slice(maxLength);
356349
return {
357350
bestId,
358351
subPath: subPath.length > 0 ? subPath : undefined,

0 commit comments

Comments
 (0)