Skip to content

Commit d38c4c1

Browse files
committed
put non-defer first
1 parent e6ac8cc commit d38c4c1

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

src/execution/execute.ts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,19 +1600,29 @@ function collectAndExecuteSubfields(
16001600
);
16011601
let groupedFieldSet = collectedSubfields.groupedFieldSet;
16021602
const newDeferUsages = collectedSubfields.newDeferUsages;
1603-
let newGroupedFieldSets;
1604-
let newDeferMap = deferMap;
1605-
if (deferMap !== undefined || newDeferUsages.length > 0) {
1606-
({ groupedFieldSet, newGroupedFieldSets } = buildSubFieldPlan(
1607-
groupedFieldSet,
1608-
incrementalContext?.deferUsageSet,
1609-
));
1610-
newDeferMap = addNewDeferredFragments(
1611-
newDeferUsages,
1612-
new Map(deferMap),
1603+
if (deferMap === undefined && newDeferUsages.length === 0) {
1604+
return executeFields(
1605+
exeContext,
1606+
returnType,
1607+
result,
16131608
path,
1609+
groupedFieldSet,
1610+
incrementalContext,
1611+
undefined,
16141612
);
16151613
}
1614+
const subFieldPlan = buildSubFieldPlan(
1615+
groupedFieldSet,
1616+
incrementalContext?.deferUsageSet,
1617+
);
1618+
1619+
groupedFieldSet = subFieldPlan.groupedFieldSet;
1620+
const newGroupedFieldSets = subFieldPlan.newGroupedFieldSets;
1621+
const newDeferMap = addNewDeferredFragments(
1622+
newDeferUsages,
1623+
new Map(deferMap),
1624+
path,
1625+
);
16161626

16171627
const subFields = executeFields(
16181628
exeContext,
@@ -1624,7 +1634,7 @@ function collectAndExecuteSubfields(
16241634
newDeferMap,
16251635
);
16261636

1627-
if (newGroupedFieldSets && newDeferMap) {
1637+
if (newGroupedFieldSets.size > 0) {
16281638
const newDeferredGroupedFieldSetRecords = executeDeferredGroupedFieldSets(
16291639
exeContext,
16301640
returnType,

0 commit comments

Comments
 (0)