Skip to content

Commit 49f4ca8

Browse files
committed
isolate async iterator next rejection within try block
to improve readability
1 parent 01b0f70 commit 49f4ca8

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/execution/execute.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,15 +1065,16 @@ async function completeAsyncIteratorValue(
10651065
try {
10661066
// eslint-disable-next-line no-await-in-loop
10671067
iteration = await iterator.next();
1068-
if (iteration.done) {
1069-
break;
1070-
}
10711068
} catch (rawError) {
10721069
const error = locatedError(rawError, fieldNodes, pathToArray(itemPath));
10731070
completedResults.push(handleFieldError(error, itemType, errors));
10741071
break;
10751072
}
10761073

1074+
if (iteration.done) {
1075+
break;
1076+
}
1077+
10771078
if (
10781079
completeListItemValue(
10791080
iteration.value,
@@ -1953,20 +1954,23 @@ async function executeStreamIteratorItem(
19531954
asyncPayloadRecord: StreamRecord,
19541955
itemPath: Path,
19551956
): Promise<IteratorResult<unknown>> {
1956-
let item;
1957+
let iteration;
19571958
try {
1958-
const { value, done } = await iterator.next();
1959-
if (done) {
1960-
asyncPayloadRecord.setIsCompletedIterator();
1961-
return { done, value: undefined };
1962-
}
1963-
item = value;
1959+
iteration = await iterator.next();
19641960
} catch (rawError) {
19651961
const error = locatedError(rawError, fieldNodes, pathToArray(itemPath));
19661962
const value = handleFieldError(error, itemType, asyncPayloadRecord.errors);
19671963
// don't continue if iterator throws
19681964
return { done: true, value };
19691965
}
1966+
1967+
const { done, value } = iteration;
1968+
1969+
if (done) {
1970+
asyncPayloadRecord.setIsCompletedIterator();
1971+
return { done, value: undefined };
1972+
}
1973+
19701974
return {
19711975
done: false,
19721976
value: completeValueCatchingErrors(
@@ -1975,7 +1979,7 @@ async function executeStreamIteratorItem(
19751979
fieldNodes,
19761980
info,
19771981
itemPath,
1978-
item,
1982+
value,
19791983
asyncPayloadRecord,
19801984
),
19811985
};

0 commit comments

Comments
 (0)