- From: Mattias Buelens <notifications@github.com>
- Date: Mon, 29 Nov 2021 11:15:19 +0000 (UTC)
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/pull/1311/review/817647023@github.com>
@MattiasBuelens commented on this pull request.
> @@ -4225,6 +4258,25 @@ steps:
<var>processBody</var>, <var>processBodyError</var>, and <var>fetchParams</var>'s
<a for="fetch params">task destination</a>.
</ol>
+ </li>
+
+ <li>
+ <p>Otherwise, if <var>response</var>'s <a for=response>body</a> is not null and is
+ <a for=ReadableStream>readable</a>, then:</o>
+
+ <ol>
+ <li><p>Let <var>transformStream</var> be a new a {{TransformStream}}.
+
+ <li><p>Let <var>identityTransformAlgorithm</var> be an algorithm which, given <var>chunk</var>,
+ <a for=ReadableStream lt=enqueue>enqueues</a> <var>chunk</var> in <var>transformStream</var>.
```suggestion
<a for=TransformStream lt=enqueue>enqueues</a> <var>chunk</var> in <var>transformStream</var>.
```
> @@ -4225,6 +4258,25 @@ steps:
<var>processBody</var>, <var>processBodyError</var>, and <var>fetchParams</var>'s
<a for="fetch params">task destination</a>.
</ol>
+ </li>
+
+ <li>
+ <p>Otherwise, if <var>response</var>'s <a for=response>body</a> is not null and is
+ <a for=ReadableStream>readable</a>, then:</o>
+
+ <ol>
+ <li><p>Let <var>transformStream</var> be a new a {{TransformStream}}.
+
+ <li><p>Let <var>identityTransformAlgorithm</var> be an algorithm which, given <var>chunk</var>,
+ <a for=ReadableStream lt=enqueue>enqueues</a> <var>chunk</var> in <var>transformStream</var>.
+
+ <li><p>Set <var>response</var>'s <a for=response>body</a> to the result of
+ <a for=TransformStream>setting up</a> <var>transformStream</var> with
[Set up a `TransformStream`](https://streams.spec.whatwg.org/#transformstream-set-up) doesn't return anything, so you can't set *response*'s body to its result. (Looks like "HTTP fetch" also does this wrong.) You want to do this in two steps:
1. Set up *transformStream* with *identityTransformAlgorithm* and *finalize*.
2. Set *response*'s body to *transformStream*'s `readable`.
However, it looks like Streams doesn't yet expose helpers for other specs to access the `readable` and `writable` properties of a `TransformStream`. (We should probably fix this in Streams. 🤔)
Luckily, we don't really need to access it directly. We need to pipe *response*'s body through *transformStream* anyway, so we can use the [pipe through](https://streams.spec.whatwg.org/#readablestream-pipe-through) helper, which does this for us:
1. Set up *transformStream* with *identityTransformAlgorithm* and *finalize*.
2. Set *response*'s body to the result of piping *response*'s body through *transformStream*.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/pull/1311#pullrequestreview-817647023
Received on Monday, 29 November 2021 13:19:34 UTC