Skip to content

Commit 79a69a5

Browse files
committed
allow nested defers at the same level
1 parent 2aedf25 commit 79a69a5

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

src/execution/__tests__/defer-test.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -355,28 +355,32 @@ describe('Execute: defer directive', () => {
355355
data: {
356356
hero: {},
357357
},
358-
pending: [
359-
{ id: '0', path: ['hero'], label: 'DeferTop' },
360-
{ id: '1', path: ['hero'], label: 'DeferNested' },
361-
],
358+
pending: [{ id: '0', path: ['hero'], label: 'DeferTop' }],
362359
hasNext: true,
363360
},
364361
{
362+
pending: [{ id: '1', path: ['hero'], label: 'DeferNested' }],
365363
incremental: [
366364
{
367365
data: {
368366
id: '1',
369367
},
370368
id: '0',
371369
},
370+
],
371+
completed: [{ id: '0' }],
372+
hasNext: true,
373+
},
374+
{
375+
incremental: [
372376
{
373377
data: {
374378
friends: [{ name: 'Han' }, { name: 'Leia' }, { name: 'C-3PO' }],
375379
},
376380
id: '1',
377381
},
378382
],
379-
completed: [{ id: '0' }, { id: '1' }],
383+
completed: [{ id: '1' }],
380384
hasNext: false,
381385
},
382386
]);

src/execution/collectFields.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ function collectFieldsImpl(
123123
context: CollectFieldsContext,
124124
selectionSet: SelectionSetNode,
125125
groupedFieldSet: AccumulatorMap<string, FieldDetails>,
126-
parentDeferUsage?: DeferUsage,
127126
deferUsage?: DeferUsage,
128127
): void {
129128
const {
@@ -143,7 +142,7 @@ function collectFieldsImpl(
143142
}
144143
groupedFieldSet.add(getFieldEntryKey(selection), {
145144
node: selection,
146-
deferUsage: deferUsage ?? parentDeferUsage,
145+
deferUsage,
147146
});
148147
break;
149148
}
@@ -159,14 +158,13 @@ function collectFieldsImpl(
159158
operation,
160159
variableValues,
161160
selection,
162-
parentDeferUsage,
161+
deferUsage,
163162
);
164163

165164
collectFieldsImpl(
166165
context,
167166
selection.selectionSet,
168167
groupedFieldSet,
169-
parentDeferUsage,
170168
newDeferUsage ?? deferUsage,
171169
);
172170

@@ -179,7 +177,7 @@ function collectFieldsImpl(
179177
operation,
180178
variableValues,
181179
selection,
182-
parentDeferUsage,
180+
deferUsage,
183181
);
184182

185183
if (
@@ -205,7 +203,6 @@ function collectFieldsImpl(
205203
context,
206204
fragment.selectionSet,
207205
groupedFieldSet,
208-
parentDeferUsage,
209206
newDeferUsage ?? deferUsage,
210207
);
211208
break;

0 commit comments

Comments
 (0)