@@ -1846,16 +1846,21 @@ function executeDeferredFragment(
1846
1846
fields ,
1847
1847
asyncPayloadRecord ,
1848
1848
) ;
1849
-
1850
- if ( isPromise ( promiseOrData ) ) {
1851
- promiseOrData = promiseOrData . then ( null , ( e ) => {
1852
- asyncPayloadRecord . errors . push ( e ) ;
1853
- return null ;
1854
- } ) ;
1855
- }
1856
1849
} catch ( e ) {
1857
1850
asyncPayloadRecord . errors . push ( e ) ;
1858
- promiseOrData = null ;
1851
+ asyncPayloadRecord . addData ( null ) ;
1852
+ return ;
1853
+ }
1854
+
1855
+ if ( isPromise ( promiseOrData ) ) {
1856
+ promiseOrData . then (
1857
+ ( value ) => asyncPayloadRecord . addData ( value ) ,
1858
+ ( error ) => {
1859
+ asyncPayloadRecord . errors . push ( error ) ;
1860
+ asyncPayloadRecord . addData ( null ) ;
1861
+ } ,
1862
+ ) ;
1863
+ return ;
1859
1864
}
1860
1865
asyncPayloadRecord . addData ( promiseOrData ) ;
1861
1866
}
@@ -1938,21 +1943,19 @@ function executeStreamField(
1938
1943
return asyncPayloadRecord ;
1939
1944
}
1940
1945
1941
- let completedItems : PromiseOrValue < Array < unknown > | null > ;
1942
1946
if ( isPromise ( completedItem ) ) {
1943
- completedItems = completedItem . then (
1944
- ( value ) => [ value ] ,
1947
+ completedItem . then (
1948
+ ( resolvedItem ) => asyncPayloadRecord . addItems ( [ resolvedItem ] ) ,
1945
1949
( error ) => {
1946
1950
asyncPayloadRecord . errors . push ( error ) ;
1947
1951
filterSubsequentPayloads ( exeContext , path , asyncPayloadRecord ) ;
1948
- return null ;
1952
+ asyncPayloadRecord . addItems ( null ) ;
1949
1953
} ,
1950
1954
) ;
1951
1955
} else {
1952
- completedItems = [ completedItem ] ;
1956
+ asyncPayloadRecord . addItems ( [ completedItem ] ) ;
1953
1957
}
1954
1958
1955
- asyncPayloadRecord . addItems ( completedItems ) ;
1956
1959
return asyncPayloadRecord ;
1957
1960
}
1958
1961
@@ -2063,22 +2066,19 @@ async function executeStreamIterator(
2063
2066
2064
2067
const { done, value : completedItem } = iteration ;
2065
2068
2066
- let completedItems : PromiseOrValue < Array < unknown > | null > ;
2067
2069
if ( isPromise ( completedItem ) ) {
2068
- completedItems = completedItem . then (
2069
- ( value ) => [ value ] ,
2070
+ completedItem . then (
2071
+ ( resolvedItem ) => asyncPayloadRecord . addItems ( [ resolvedItem ] ) ,
2070
2072
( error ) => {
2071
2073
asyncPayloadRecord . errors . push ( error ) ;
2072
2074
filterSubsequentPayloads ( exeContext , path , asyncPayloadRecord ) ;
2073
- return null ;
2075
+ asyncPayloadRecord . addItems ( null ) ;
2074
2076
} ,
2075
2077
) ;
2076
2078
} else {
2077
- completedItems = [ completedItem ] ;
2079
+ asyncPayloadRecord . addItems ( [ completedItem ] ) ;
2078
2080
}
2079
2081
2080
- asyncPayloadRecord . addItems ( completedItems ) ;
2081
-
2082
2082
if ( done ) {
2083
2083
break ;
2084
2084
}
@@ -2257,7 +2257,7 @@ class DeferredFragmentRecord {
2257
2257
} ) ;
2258
2258
}
2259
2259
2260
- addData ( data : PromiseOrValue < ObjMap < unknown > | null > ) {
2260
+ addData ( data : ObjMap < unknown > | null ) {
2261
2261
const parentData = this . parentContext ?. promise ;
2262
2262
if ( parentData ) {
2263
2263
this . _resolve ?.( parentData . then ( ( ) => data ) ) ;
@@ -2308,7 +2308,7 @@ class StreamRecord {
2308
2308
} ) ;
2309
2309
}
2310
2310
2311
- addItems ( items : PromiseOrValue < Array < unknown > | null > ) {
2311
+ addItems ( items : Array < unknown > | null ) {
2312
2312
const parentData = this . parentContext ?. promise ;
2313
2313
if ( parentData ) {
2314
2314
this . _resolve ?.( parentData . then ( ( ) => items ) ) ;
0 commit comments