(self: RequestBlock.RequestBlock)
| 252 | * Executes all requests, submitting requests to each data source in parallel. |
| 253 | */ |
| 254 | const runBlockedRequests = (self: RequestBlock.RequestBlock) => |
| 255 | core.forEachSequentialDiscard( |
| 256 | RequestBlock_.flatten(self), |
| 257 | (requestsByRequestResolver) => |
| 258 | forEachConcurrentDiscard( |
| 259 | RequestBlock_.sequentialCollectionToChunk(requestsByRequestResolver), |
| 260 | ([dataSource, sequential]) => { |
| 261 | const map = new Map<Request<any, any>, Entry<any>>() |
| 262 | const arr: Array<Array<Entry<any>>> = [] |
| 263 | for (const block of sequential) { |
| 264 | arr.push(Chunk.toReadonlyArray(block) as any) |
| 265 | for (const entry of block) { |
| 266 | map.set(entry.request as Request<any, any>, entry) |
| 267 | } |
| 268 | } |
| 269 | const flat = arr.flat() |
| 270 | return core.fiberRefLocally( |
| 271 | invokeWithInterrupt(dataSource.runAll(arr), flat, () => |
| 272 | flat.forEach((entry) => { |
| 273 | entry.listeners.interrupted = true |
| 274 | })), |
| 275 | currentRequestMap, |
| 276 | map |
| 277 | ) |
| 278 | }, |
| 279 | false, |
| 280 | false |
| 281 | ) |
| 282 | ) |
| 283 | |
| 284 | /** @internal */ |
| 285 | export interface Snapshot { |
no test coverage detected