@@ -85,70 +85,6 @@ export type FormattedIncrementalResult<
85
85
| FormattedIncrementalDeferResult < TData , TExtensions >
86
86
| FormattedIncrementalStreamResult < TData , TExtensions > ;
87
87
88
- export function filterSubsequentPayloads (
89
- subsequentPayloads : Set < IncrementalDataRecord > ,
90
- nullPath : Path ,
91
- currentIncrementalDataRecord : IncrementalDataRecord | undefined ,
92
- ) : void {
93
- const nullPathArray = pathToArray ( nullPath ) ;
94
- subsequentPayloads . forEach ( ( incrementalDataRecord ) => {
95
- if ( incrementalDataRecord === currentIncrementalDataRecord ) {
96
- // don't remove payload from where error originates
97
- return ;
98
- }
99
- for ( let i = 0 ; i < nullPathArray . length ; i ++ ) {
100
- if ( incrementalDataRecord . path [ i ] !== nullPathArray [ i ] ) {
101
- // incrementalDataRecord points to a path unaffected by this payload
102
- return ;
103
- }
104
- }
105
- // incrementalDataRecord path points to nulled error field
106
- if (
107
- isStreamItemsRecord ( incrementalDataRecord ) &&
108
- incrementalDataRecord . asyncIterator ?. return
109
- ) {
110
- incrementalDataRecord . asyncIterator . return ( ) . catch ( ( ) => {
111
- // ignore error
112
- } ) ;
113
- }
114
- subsequentPayloads . delete ( incrementalDataRecord ) ;
115
- } ) ;
116
- }
117
-
118
- function getCompletedIncrementalResults (
119
- subsequentPayloads : Set < IncrementalDataRecord > ,
120
- ) : Array < IncrementalResult > {
121
- const incrementalResults : Array < IncrementalResult > = [ ] ;
122
- for ( const incrementalDataRecord of subsequentPayloads ) {
123
- const incrementalResult : IncrementalResult = { } ;
124
- if ( ! incrementalDataRecord . isCompleted ) {
125
- continue ;
126
- }
127
- subsequentPayloads . delete ( incrementalDataRecord ) ;
128
- if ( isStreamItemsRecord ( incrementalDataRecord ) ) {
129
- const items = incrementalDataRecord . items ;
130
- if ( incrementalDataRecord . isCompletedAsyncIterator ) {
131
- // async iterable resolver just finished but there may be pending payloads
132
- continue ;
133
- }
134
- ( incrementalResult as IncrementalStreamResult ) . items = items ;
135
- } else {
136
- const data = incrementalDataRecord . data ;
137
- ( incrementalResult as IncrementalDeferResult ) . data = data ?? null ;
138
- }
139
-
140
- incrementalResult . path = incrementalDataRecord . path ;
141
- if ( incrementalDataRecord . label != null ) {
142
- incrementalResult . label = incrementalDataRecord . label ;
143
- }
144
- if ( incrementalDataRecord . errors . length > 0 ) {
145
- incrementalResult . errors = incrementalDataRecord . errors ;
146
- }
147
- incrementalResults . push ( incrementalResult ) ;
148
- }
149
- return incrementalResults ;
150
- }
151
-
152
88
export function yieldSubsequentPayloads (
153
89
subsequentPayloads : Set < IncrementalDataRecord > ,
154
90
) : AsyncGenerator < SubsequentIncrementalExecutionResult , void , void > {
@@ -220,6 +156,70 @@ export function yieldSubsequentPayloads(
220
156
} ;
221
157
}
222
158
159
+ function getCompletedIncrementalResults (
160
+ subsequentPayloads : Set < IncrementalDataRecord > ,
161
+ ) : Array < IncrementalResult > {
162
+ const incrementalResults : Array < IncrementalResult > = [ ] ;
163
+ for ( const incrementalDataRecord of subsequentPayloads ) {
164
+ const incrementalResult : IncrementalResult = { } ;
165
+ if ( ! incrementalDataRecord . isCompleted ) {
166
+ continue ;
167
+ }
168
+ subsequentPayloads . delete ( incrementalDataRecord ) ;
169
+ if ( isStreamItemsRecord ( incrementalDataRecord ) ) {
170
+ const items = incrementalDataRecord . items ;
171
+ if ( incrementalDataRecord . isCompletedAsyncIterator ) {
172
+ // async iterable resolver just finished but there may be pending payloads
173
+ continue ;
174
+ }
175
+ ( incrementalResult as IncrementalStreamResult ) . items = items ;
176
+ } else {
177
+ const data = incrementalDataRecord . data ;
178
+ ( incrementalResult as IncrementalDeferResult ) . data = data ?? null ;
179
+ }
180
+
181
+ incrementalResult . path = incrementalDataRecord . path ;
182
+ if ( incrementalDataRecord . label != null ) {
183
+ incrementalResult . label = incrementalDataRecord . label ;
184
+ }
185
+ if ( incrementalDataRecord . errors . length > 0 ) {
186
+ incrementalResult . errors = incrementalDataRecord . errors ;
187
+ }
188
+ incrementalResults . push ( incrementalResult ) ;
189
+ }
190
+ return incrementalResults ;
191
+ }
192
+
193
+ export function filterSubsequentPayloads (
194
+ subsequentPayloads : Set < IncrementalDataRecord > ,
195
+ nullPath : Path ,
196
+ currentIncrementalDataRecord : IncrementalDataRecord | undefined ,
197
+ ) : void {
198
+ const nullPathArray = pathToArray ( nullPath ) ;
199
+ subsequentPayloads . forEach ( ( incrementalDataRecord ) => {
200
+ if ( incrementalDataRecord === currentIncrementalDataRecord ) {
201
+ // don't remove payload from where error originates
202
+ return ;
203
+ }
204
+ for ( let i = 0 ; i < nullPathArray . length ; i ++ ) {
205
+ if ( incrementalDataRecord . path [ i ] !== nullPathArray [ i ] ) {
206
+ // incrementalDataRecord points to a path unaffected by this payload
207
+ return ;
208
+ }
209
+ }
210
+ // incrementalDataRecord path points to nulled error field
211
+ if (
212
+ isStreamItemsRecord ( incrementalDataRecord ) &&
213
+ incrementalDataRecord . asyncIterator ?. return
214
+ ) {
215
+ incrementalDataRecord . asyncIterator . return ( ) . catch ( ( ) => {
216
+ // ignore error
217
+ } ) ;
218
+ }
219
+ subsequentPayloads . delete ( incrementalDataRecord ) ;
220
+ } ) ;
221
+ }
222
+
223
223
/** @internal */
224
224
export class DeferredFragmentRecord {
225
225
type : 'defer' ;
0 commit comments