(
streamId: string,
iterator: AsyncIterator<unknown>,
controller: AbortController
)
| 1506 | } |
| 1507 | |
| 1508 | private async pumpOrpcStream( |
| 1509 | streamId: string, |
| 1510 | iterator: AsyncIterator<unknown>, |
| 1511 | controller: AbortController |
| 1512 | ): Promise<void> { |
| 1513 | try { |
| 1514 | for await (const value of { |
| 1515 | [Symbol.asyncIterator]() { |
| 1516 | return iterator; |
| 1517 | }, |
| 1518 | } as AsyncIterable<unknown>) { |
| 1519 | if (controller.signal.aborted) { |
| 1520 | break; |
| 1521 | } |
| 1522 | |
| 1523 | this.postMessage({ |
| 1524 | type: "orpcStreamData", |
| 1525 | streamId, |
| 1526 | value, |
| 1527 | }); |
| 1528 | } |
| 1529 | |
| 1530 | this.postMessage({ |
| 1531 | type: "orpcStreamEnd", |
| 1532 | streamId, |
| 1533 | }); |
| 1534 | } catch (error) { |
| 1535 | if (controller.signal.aborted) { |
| 1536 | this.postMessage({ |
| 1537 | type: "orpcStreamEnd", |
| 1538 | streamId, |
| 1539 | }); |
| 1540 | return; |
| 1541 | } |
| 1542 | |
| 1543 | this.postMessage({ |
| 1544 | type: "orpcStreamError", |
| 1545 | streamId, |
| 1546 | error: formatError(error), |
| 1547 | }); |
| 1548 | } finally { |
| 1549 | this.activeOrpcStreams.delete(streamId); |
| 1550 | } |
| 1551 | } |
| 1552 | |
| 1553 | private async handleOrpcCall(args: { |
| 1554 | requestId: string; |
no test coverage detected