Commit ff403ee
authored
fix(ext/fetch): use byte ReadableStream for Node Readable request bodies (#33432)
## Summary
- When a `node:http` `IncomingMessage` (or any binary-mode
`stream.Readable`) is passed as the body of a `Request`, build a `type:
"bytes"` `ReadableStream` so consumers can acquire a BYOB reader
(`getReader({ mode: "byob" })`).
- Previously `extractBody` always wrapped async-iterable bodies with
`ReadableStream.from(...)`, which produces a default (non-byte) stream.
That broke code paths — including common HTTP proxying patterns — that
call `request.body.getReader({ mode: "byob" })` on a body sourced from
an `IncomingMessage`.
- Matches undici's behavior in Node, where `stream.Readable` bodies go
through `Readable.toWeb()` and yield a byte stream. Object-mode and
encoded (string) readables still fall through to the existing
`ReadableStream.from` path.
Fixes #33392.1 parent dc88ad5 commit ff403ee
2 files changed
Lines changed: 75 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
486 | 486 | | |
487 | 487 | | |
488 | 488 | | |
489 | | - | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
490 | 523 | | |
491 | 524 | | |
492 | 525 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2704 | 2704 | | |
2705 | 2705 | | |
2706 | 2706 | | |
| 2707 | + | |
| 2708 | + | |
| 2709 | + | |
| 2710 | + | |
| 2711 | + | |
| 2712 | + | |
| 2713 | + | |
| 2714 | + | |
| 2715 | + | |
| 2716 | + | |
| 2717 | + | |
| 2718 | + | |
| 2719 | + | |
| 2720 | + | |
| 2721 | + | |
| 2722 | + | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
| 2737 | + | |
| 2738 | + | |
| 2739 | + | |
| 2740 | + | |
| 2741 | + | |
| 2742 | + | |
| 2743 | + | |
| 2744 | + | |
| 2745 | + | |
| 2746 | + | |
| 2747 | + | |
0 commit comments