@@ -2055,60 +2055,6 @@ function executeStreamField(
2055
2055
return asyncPayloadRecord ;
2056
2056
}
2057
2057
2058
- async function executeStreamIteratorItem (
2059
- iterator : AsyncIterator < unknown > ,
2060
- exeContext : ExecutionContext ,
2061
- fieldNodes : ReadonlyArray < FieldNode > ,
2062
- info : GraphQLResolveInfo ,
2063
- itemType : GraphQLOutputType ,
2064
- asyncPayloadRecord : StreamRecord ,
2065
- itemPath : Path ,
2066
- ) : Promise < IteratorResult < unknown > > {
2067
- let item ;
2068
- try {
2069
- const { value, done } = await iterator . next ( ) ;
2070
- if ( done ) {
2071
- asyncPayloadRecord . setIsCompletedIterator ( ) ;
2072
- return { done, value : undefined } ;
2073
- }
2074
- item = value ;
2075
- } catch ( rawError ) {
2076
- const error = locatedError ( rawError , fieldNodes , pathToArray ( itemPath ) ) ;
2077
- const value = handleFieldError ( error , itemType , asyncPayloadRecord . errors ) ;
2078
- // don't continue if iterator throws
2079
- return { done : true , value } ;
2080
- }
2081
- let completedItem ;
2082
- try {
2083
- completedItem = completeValue (
2084
- exeContext ,
2085
- itemType ,
2086
- fieldNodes ,
2087
- info ,
2088
- itemPath ,
2089
- item ,
2090
- asyncPayloadRecord ,
2091
- ) ;
2092
-
2093
- if ( isPromise ( completedItem ) ) {
2094
- completedItem = handleAsyncCompletionError (
2095
- completedItem ,
2096
- exeContext ,
2097
- itemType ,
2098
- fieldNodes ,
2099
- itemPath ,
2100
- asyncPayloadRecord ,
2101
- ) ;
2102
- }
2103
- return { done : false , value : completedItem } ;
2104
- } catch ( rawError ) {
2105
- const error = locatedError ( rawError , fieldNodes , pathToArray ( itemPath ) ) ;
2106
- const value = handleFieldError ( error , itemType , asyncPayloadRecord . errors ) ;
2107
- filterSubsequentPayloads ( exeContext , itemPath , asyncPayloadRecord ) ;
2108
- return { done : false , value } ;
2109
- }
2110
- }
2111
-
2112
2058
async function executeStreamIterator (
2113
2059
initialIndex : number ,
2114
2060
iterator : AsyncIterator < unknown > ,
@@ -2186,6 +2132,60 @@ async function executeStreamIterator(
2186
2132
}
2187
2133
}
2188
2134
2135
+ async function executeStreamIteratorItem (
2136
+ iterator : AsyncIterator < unknown > ,
2137
+ exeContext : ExecutionContext ,
2138
+ fieldNodes : ReadonlyArray < FieldNode > ,
2139
+ info : GraphQLResolveInfo ,
2140
+ itemType : GraphQLOutputType ,
2141
+ asyncPayloadRecord : StreamRecord ,
2142
+ itemPath : Path ,
2143
+ ) : Promise < IteratorResult < unknown > > {
2144
+ let item ;
2145
+ try {
2146
+ const { value, done } = await iterator . next ( ) ;
2147
+ if ( done ) {
2148
+ asyncPayloadRecord . setIsCompletedIterator ( ) ;
2149
+ return { done, value : undefined } ;
2150
+ }
2151
+ item = value ;
2152
+ } catch ( rawError ) {
2153
+ const error = locatedError ( rawError , fieldNodes , pathToArray ( itemPath ) ) ;
2154
+ const value = handleFieldError ( error , itemType , asyncPayloadRecord . errors ) ;
2155
+ // don't continue if iterator throws
2156
+ return { done : true , value } ;
2157
+ }
2158
+ let completedItem ;
2159
+ try {
2160
+ completedItem = completeValue (
2161
+ exeContext ,
2162
+ itemType ,
2163
+ fieldNodes ,
2164
+ info ,
2165
+ itemPath ,
2166
+ item ,
2167
+ asyncPayloadRecord ,
2168
+ ) ;
2169
+
2170
+ if ( isPromise ( completedItem ) ) {
2171
+ completedItem = handleAsyncCompletionError (
2172
+ completedItem ,
2173
+ exeContext ,
2174
+ itemType ,
2175
+ fieldNodes ,
2176
+ itemPath ,
2177
+ asyncPayloadRecord ,
2178
+ ) ;
2179
+ }
2180
+ return { done : false , value : completedItem } ;
2181
+ } catch ( rawError ) {
2182
+ const error = locatedError ( rawError , fieldNodes , pathToArray ( itemPath ) ) ;
2183
+ const value = handleFieldError ( error , itemType , asyncPayloadRecord . errors ) ;
2184
+ filterSubsequentPayloads ( exeContext , itemPath , asyncPayloadRecord ) ;
2185
+ return { done : false , value } ;
2186
+ }
2187
+ }
2188
+
2189
2189
function filterSubsequentPayloads (
2190
2190
exeContext : ExecutionContext ,
2191
2191
nullPath : Path ,
0 commit comments