@@ -1791,16 +1791,21 @@ function executeDeferredFragment(
1791
1791
fields ,
1792
1792
asyncPayloadRecord ,
1793
1793
) ;
1794
-
1795
- if ( isPromise ( promiseOrData ) ) {
1796
- promiseOrData = promiseOrData . then ( null , ( e ) => {
1797
- asyncPayloadRecord . errors . push ( e ) ;
1798
- return null ;
1799
- } ) ;
1800
- }
1801
1794
} catch ( e ) {
1802
1795
asyncPayloadRecord . errors . push ( e ) ;
1803
- promiseOrData = null ;
1796
+ asyncPayloadRecord . addData ( null ) ;
1797
+ return ;
1798
+ }
1799
+
1800
+ if ( isPromise ( promiseOrData ) ) {
1801
+ promiseOrData . then (
1802
+ ( value ) => asyncPayloadRecord . addData ( value ) ,
1803
+ ( error ) => {
1804
+ asyncPayloadRecord . errors . push ( error ) ;
1805
+ asyncPayloadRecord . addData ( null ) ;
1806
+ } ,
1807
+ ) ;
1808
+ return ;
1804
1809
}
1805
1810
asyncPayloadRecord . addData ( promiseOrData ) ;
1806
1811
}
@@ -1823,7 +1828,7 @@ function executeStreamField(
1823
1828
exeContext,
1824
1829
} ) ;
1825
1830
if ( isPromise ( item ) ) {
1826
- const completedItems = completePromisedValue (
1831
+ completePromisedValue (
1827
1832
exeContext ,
1828
1833
itemType ,
1829
1834
fieldNodes ,
@@ -1832,15 +1837,14 @@ function executeStreamField(
1832
1837
item ,
1833
1838
asyncPayloadRecord ,
1834
1839
) . then (
1835
- ( value ) => [ value ] ,
1840
+ ( value ) => asyncPayloadRecord . addItems ( [ value ] ) ,
1836
1841
( error ) => {
1837
1842
asyncPayloadRecord . errors . push ( error ) ;
1838
1843
filterSubsequentPayloads ( exeContext , path , asyncPayloadRecord ) ;
1839
- return null ;
1844
+ asyncPayloadRecord . addItems ( null ) ;
1840
1845
} ,
1841
1846
) ;
1842
1847
1843
- asyncPayloadRecord . addItems ( completedItems ) ;
1844
1848
return asyncPayloadRecord ;
1845
1849
}
1846
1850
@@ -1885,15 +1889,14 @@ function executeStreamField(
1885
1889
return handledError ;
1886
1890
} )
1887
1891
. then (
1888
- ( value ) => [ value ] ,
1892
+ ( value ) => asyncPayloadRecord . addItems ( [ value ] ) ,
1889
1893
( error ) => {
1890
1894
asyncPayloadRecord . errors . push ( error ) ;
1891
1895
filterSubsequentPayloads ( exeContext , path , asyncPayloadRecord ) ;
1892
- return null ;
1896
+ asyncPayloadRecord . addItems ( null ) ;
1893
1897
} ,
1894
1898
) ;
1895
1899
1896
- asyncPayloadRecord . addItems ( completedItems ) ;
1897
1900
return asyncPayloadRecord ;
1898
1901
}
1899
1902
@@ -2008,22 +2011,19 @@ async function executeStreamIterator(
2008
2011
2009
2012
const { done, value : completedItem } = iteration ;
2010
2013
2011
- let completedItems : PromiseOrValue < Array < unknown > | null > ;
2012
2014
if ( isPromise ( completedItem ) ) {
2013
- completedItems = completedItem . then (
2014
- ( value ) => [ value ] ,
2015
+ completedItem . then (
2016
+ ( resolvedItem ) => asyncPayloadRecord . addItems ( [ resolvedItem ] ) ,
2015
2017
( error ) => {
2016
2018
asyncPayloadRecord . errors . push ( error ) ;
2017
2019
filterSubsequentPayloads ( exeContext , path , asyncPayloadRecord ) ;
2018
- return null ;
2020
+ asyncPayloadRecord . addItems ( null ) ;
2019
2021
} ,
2020
2022
) ;
2021
2023
} else {
2022
- completedItems = [ completedItem ] ;
2024
+ asyncPayloadRecord . addItems ( [ completedItem ] ) ;
2023
2025
}
2024
2026
2025
- asyncPayloadRecord . addItems ( completedItems ) ;
2026
-
2027
2027
if ( done ) {
2028
2028
break ;
2029
2029
}
@@ -2202,7 +2202,7 @@ class DeferredFragmentRecord {
2202
2202
} ) ;
2203
2203
}
2204
2204
2205
- addData ( data : PromiseOrValue < ObjMap < unknown > | null > ) {
2205
+ addData ( data : ObjMap < unknown > | null ) {
2206
2206
const parentData = this . parentContext ?. promise ;
2207
2207
if ( parentData ) {
2208
2208
this . _resolve ?.( parentData . then ( ( ) => data ) ) ;
@@ -2253,7 +2253,7 @@ class StreamRecord {
2253
2253
} ) ;
2254
2254
}
2255
2255
2256
- addItems ( items : PromiseOrValue < Array < unknown > | null > ) {
2256
+ addItems ( items : Array < unknown > | null ) {
2257
2257
const parentData = this . parentContext ?. promise ;
2258
2258
if ( parentData ) {
2259
2259
this . _resolve ?.( parentData . then ( ( ) => items ) ) ;
0 commit comments