Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(api): Make macros with line breaks span a single line only #32510

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions files/en-us/web/api/animation/updateplaybackrate/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@ currently running.
`updatePlaybackRate()` is an asynchronous method that sets the speed of an
animation after synchronizing with its current playback position, ensuring that the
resulting change in speed does not produce a sharp jump. After calling
`updatePlaybackRate()` the animation's {{domxref("Animation.playbackRate",
"playbackRate")}} is _not_ immediately updated. It will be updated once the
animation's {{domxref("Animation.ready", "ready")}} promise is resolved.
`updatePlaybackRate()` the animation's {{domxref("Animation.playbackRate", "playbackRate")}}
is _not_ immediately updated. It will be updated once the animation's {{domxref("Animation.ready", "ready")}} promise is resolved.

## Syntax

Expand Down
5 changes: 2 additions & 3 deletions files/en-us/web/api/audiobuffer/duration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ browser-compat: api.AudioBuffer.duration

{{ APIRef("Web Audio API") }}

The **`duration`** property of the {{ domxref("AudioBuffer")
}} interface returns a double representing the duration, in seconds, of the PCM data
stored in the buffer.
The **`duration`** property of the {{ domxref("AudioBuffer")}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The **`duration`** property of the {{ domxref("AudioBuffer")}}
The **`duration`** property of the {{domxref("AudioBuffer")}}

interface returns a double representing the duration, in seconds, of the PCM data stored in the buffer.

## Value

Expand Down
3 changes: 1 addition & 2 deletions files/en-us/web/api/audiobuffer/samplerate/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.AudioBuffer.sampleRate

{{ APIRef("Web Audio API") }}

The **`sampleRate`** property of the {{
domxref("AudioBuffer") }} interface returns a float representing the sample rate, in
The **`sampleRate`** property of the {{domxref("AudioBuffer")}} interface returns a float representing the sample rate, in
samples per second, of the PCM data stored in the buffer.

## Value
Expand Down
3 changes: 1 addition & 2 deletions files/en-us/web/api/audiobuffersourcenode/buffer/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.AudioBufferSourceNode.buffer

{{ APIRef("Web Audio API") }}

The **`buffer`** property of the {{
domxref("AudioBufferSourceNode") }} interface provides the ability to play back audio
The **`buffer`** property of the {{domxref("AudioBufferSourceNode")}} interface provides the ability to play back audio
using an {{domxref("AudioBuffer")}} as the source of the sound data.

If the `buffer` property is set to the value `null`, the node
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.AudioBufferSourceNode.loopStart

{{ APIRef("Web Audio API") }}

The **`loopStart`** property of the {{
domxref("AudioBufferSourceNode") }} interface is a floating-point value indicating, in
The **`loopStart`** property of the {{domxref("AudioBufferSourceNode")}} interface is a floating-point value indicating, in
seconds, where in the {{domxref("AudioBuffer")}} the restart of the play must happen.

The `loopStart` property's default value is `0`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ Interface is used to create a new {{ domxref("MediaStreamAudioSourceNode") }}
object, given a media stream (say, from a {{ domxref("MediaDevices.getUserMedia") }}
instance), the audio from which can then be played and manipulated.

For more details about media stream audio source nodes, check out the {{
domxref("MediaStreamAudioSourceNode") }} reference page.
For more details about media stream audio source nodes, check out the {{domxref("MediaStreamAudioSourceNode")}} reference page.

## Syntax

Expand All @@ -35,11 +34,9 @@ whose media is obtained from the specified source stream.

## Examples

In this example, we grab a media (audio + video) stream from {{
domxref("navigator.getUserMedia") }}, feed the media into a {{ htmlelement("video") }}
element to play then mute the audio, but then also feed the audio into a {{
domxref("MediaStreamAudioSourceNode") }}. Next, we feed this source audio into a low
pass {{ domxref("BiquadFilterNode") }} (which effectively serves as a bass booster),
In this example, we grab a media (audio + video) stream from {{domxref("navigator.getUserMedia")}}, feed the media into a {{htmlelement("video")}}
element to play then mute the audio, but then also feed the audio into a {{domxref("MediaStreamAudioSourceNode")}}.
Next, we feed this source audio into a low pass {{ domxref("BiquadFilterNode") }} (which effectively serves as a bass booster),
then a {{domxref("AudioDestinationNode") }}.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
then a {{domxref("AudioDestinationNode") }}.
then a {{domxref("AudioDestinationNode")}}.


The range slider below the {{ htmlelement("video") }} element controls the amount of
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,11 @@ browser-compat: api.AudioContext.createMediaStreamTrackSource

{{ APIRef("Web Audio API") }}

The **`createMediaStreamTrackSource()`** method of the {{
domxref("AudioContext") }} interface creates and returns a
The **`createMediaStreamTrackSource()`** method of the {{domxref("AudioContext")}} interface creates and returns a
{{domxref("MediaStreamTrackAudioSourceNode")}} which represents an audio source whose
data comes from the specified {{domxref("MediaStreamTrack")}}.

This differs from {{domxref("AudioContext.createMediaStreamSource",
"createMediaStreamSource()")}}, which creates a
This differs from {{domxref("AudioContext.createMediaStreamSource", "createMediaStreamSource()")}}, which creates a
{{domxref("MediaStreamAudioSourceNode")}} whose audio comes from the audio track in a
specified {{domxref("MediaStream")}} whose {{domxref("MediaStreamTrack.id", "id")}} is
first, lexicographically (alphabetically).
Expand Down
7 changes: 3 additions & 4 deletions files/en-us/web/api/audionode/connect/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ browser-compat: api.AudioNode.connect

{{ APIRef("Web Audio API") }}

The `connect()` method of the {{ domxref("AudioNode") }} interface lets
The `connect()` method of the {{domxref("AudioNode")}} interface lets
you connect one of the node's outputs to a target, which may be either another
`AudioNode` (thereby directing the sound data to the specified node) or an
{{domxref("AudioParam")}}, so that the node's output data is automatically used to
Expand Down Expand Up @@ -129,9 +129,8 @@ lfo.start();

#### AudioParam notes

It is possible to connect an `AudioNode` output to more than one {{
domxref("AudioParam") }}, and more than one AudioNode output to a single {{
domxref("AudioParam") }}, with multiple calls to `connect()`. [Fan-in and fan-out](/en-US/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#fan-in_and_fan-out) are therefore supported.
It is possible to connect an `AudioNode` output to more than one {{domxref("AudioParam")}}, and more than one AudioNode output to a single {{domxref("AudioParam")}}, with multiple calls to `connect()`.
[Fan-in and fan-out](/en-US/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#fan-in_and_fan-out) are therefore supported.

An {{ domxref("AudioParam") }} will take the rendered audio data from any
`AudioNode` output connected to it and convert it to mono by [down-mixing](/en-US/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#up-mixing_and_down-mixing)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.AudioParam.exponentialRampToValueAtTime

{{ APIRef("Web Audio API") }}

The **`exponentialRampToValueAtTime()`** method of the {{
domxref("AudioParam") }} Interface schedules a gradual exponential change in the value
The **`exponentialRampToValueAtTime()`** method of the {{domxref("AudioParam")}} Interface schedules a gradual exponential change in the value
of the {{domxref("AudioParam")}}. The change starts at the time specified for the
_previous_ event, follows an exponential ramp to the new value given in the
`value` parameter, and reaches the new value at the time given in the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ implementations of this interface return {{jsxref('undefined')}}.

In this example, we have a media source with two control buttons (see the [audio-param repo](https://github.com/mdn/webaudio-examples/tree/main/audio-param) for the source code, or [view the example live](https://mdn.github.io/webaudio-examples/audio-param/).) When these buttons are pressed, `linearRampToValueAtTime()` is
used to fade the gain value up to 1.0, and down to 0, respectively. This is pretty
useful for fade in/fade out effects, although {{
domxref("AudioParam.exponentialRampToValueAtTime()") }} is often said to be a bit more
useful for fade in/fade out effects, although {{domxref("AudioParam.exponentialRampToValueAtTime()")}} is often said to be a bit more
natural.

```js
Expand Down
11 changes: 5 additions & 6 deletions files/en-us/web/api/audioparam/value/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ property.

A floating-point {{jsxref("Number")}} indicating the parameter's value as of the
current time. This value will be between the values specified by the
{{domxref("AudioParam.minValue", "minValue")}} and {{domxref("AudioParam.maxValue",
"maxValue")}} properties.
{{domxref("AudioParam.minValue", "minValue")}} and {{domxref("AudioParam.maxValue", "maxValue")}} properties.

## Usage notes

Expand Down Expand Up @@ -83,10 +82,10 @@ the value of a parameter:
- If any graduated or ramped value changing methods have been called and the current
time is within the time range over which the graduated change should occur, the value
is updated based on the appropriate algorithm. These ramped or graduated
value-changing methods include {{domxref("AudioParam.linearRampToValueAtTime",
"linearRampToValueAtTime()")}}, {{domxref("AudioParam.setTargetAtTime",
"setTargetAtTime()")}}, and {{domxref("AudioParam.setValueCurveAtTime",
"setValueCurveAtTime()")}}.
value-changing methods include
{{domxref("AudioParam.linearRampToValueAtTime", "linearRampToValueAtTime()")}},
{{domxref("AudioParam.setTargetAtTime", "setTargetAtTime()")}}, and
{{domxref("AudioParam.setValueCurveAtTime", "setValueCurveAtTime()")}}.

Thus, the `value` of a parameter is maintained to accurately reflect the
state of the parameter over time.
Expand Down
9 changes: 3 additions & 6 deletions files/en-us/web/api/audioscheduledsourcenode/start/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ browser-compat: api.AudioScheduledSourceNode.start

{{APIRef("Web Audio API")}}

The `start()` method on
{{domxref("AudioScheduledSourceNode")}} schedules a sound to begin playback at the
specified time. If no time is specified, then the sound begins playing
immediately.
The `start()` method on {{domxref("AudioScheduledSourceNode")}} schedules a sound to begin playback at the
specified time. If no time is specified, then the sound begins playing immediately.

## Syntax

Expand All @@ -37,8 +35,7 @@ None ({{jsxref("undefined")}}).

- `InvalidStateNode` {{domxref("DOMException")}}
- : Thrown if the node has already been started. This error occurs even if the node is no longer
running because of a prior call to {{domxref("AudioScheduledSourceNode.stop",
"stop()")}}.
running because of a prior call to {{domxref("AudioScheduledSourceNode.stop", "stop()")}}.
- {{jsxref("RangeError")}}
- : Thrown if the value specified for `when` is negative.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ None ({{jsxref("undefined")}}).
### Exceptions

- `InvalidStateNode` {{domxref("DOMException")}}
- : Thrown if the node has not been started by calling {{domxref("AudioScheduledSourceNode.start",
"start()")}}.
- : Thrown if the node has not been started by calling {{domxref("AudioScheduledSourceNode.start", "start()")}}.
- {{jsxref("RangeError")}}
- : Thrown if the value specified for `when` is negative.

Expand Down
4 changes: 2 additions & 2 deletions files/en-us/web/api/audiotrack/label/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ function getTrackList(el) {

The resulting `trackList` contains an array of audio tracks whose
`kind` is one of those in the array `wantedKinds`, with each entry
providing the track's {{domxref("AudioTrack.id", "id")}}, {{domxref("AudioTrack.kind",
"kind")}}, and {{domxref("AudioTrack.label", "label")}}.
providing the track's {{domxref("AudioTrack.id", "id")}},
{{domxref("AudioTrack.kind", "kind")}}, and {{domxref("AudioTrack.label", "label")}}.

## Specifications

Expand Down
10 changes: 3 additions & 7 deletions files/en-us/web/api/audiotracklist/gettrackbyid/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,8 @@ browser-compat: api.AudioTrackList.getTrackById

{{APIRef("HTML DOM")}}

The **{{domxref("AudioTrackList")}}** method
**`getTrackById()`** returns the first
{{domxref("AudioTrack")}} object from the track list whose {{domxref("AudioTrack.id",
"id")}} matches the specified string. This lets you find a specified track if
you know its ID string.
The **{{domxref("AudioTrackList")}}** method **`getTrackById()`** returns the first {{domxref("AudioTrack")}} object from the track list whose {{domxref("AudioTrack.id", "id")}} matches the specified string.
This lets you find a specified track if you know its ID string.

## Syntax

Expand Down Expand Up @@ -55,8 +52,7 @@ function disableCharacter(videoElem, characterName) {
This short function gets the {{domxref("AudioTrackList")}} containing the video's audio
tracks using {{domxref("HTMLMediaElement.audioTracks")}}, then calls
`getTrackById()` on it, specifying the character's name. The resulting
track's audio is then disabled by setting its {{domxref("AudioTrack.enabled",
"enabled")}} flag to `false`.
track's audio is then disabled by setting its {{domxref("AudioTrack.enabled", "enabled")}} flag to `false`.

## Specifications

Expand Down
3 changes: 1 addition & 2 deletions files/en-us/web/api/audiotracklist/length/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ A number indicating how many audio tracks are included in the
## Examples

This snippet gets the number of audio tracks in the first {{HTMLElement("video")}}
element found in the {{Glossary("DOM")}} by {{domxref("Document.querySelector",
"querySelector()")}}.
element found in the {{Glossary("DOM")}} by {{domxref("Document.querySelector", "querySelector()")}}.

```js
const videoElem = document.querySelector("video");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ None ({{jsxref("undefined")}}).
- : Thrown under the following conditions:

- The _processorCtor_ is not a callable constructor.
- The {{domxref("AudioWorkletProcessor.parameterDescriptors",
"parameterDescriptors")}} property of the constructor exists and doesn't return an
- The {{domxref("AudioWorkletProcessor.parameterDescriptors", "parameterDescriptors")}} property of the constructor exists and doesn't return an
array of {{domxref("AudioParamDescriptor")}}-based objects.

## Examples
Expand Down
3 changes: 1 addition & 2 deletions files/en-us/web/api/audioworkletnode/parameters/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ getter.

The {{domxref("AudioParamMap")}} object containing {{domxref("AudioParam")}} instances.
They can be automated in the same way as with default `AudioNode`s, and their
calculated values can be used in the {{domxref("AudioWorkletProcessor.process",
"process")}} method of your {{domxref("AudioWorkletProcessor")}}.
calculated values can be used in the {{domxref("AudioWorkletProcessor.process", "process")}} method of your {{domxref("AudioWorkletProcessor")}}.

## Examples

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ new AudioWorkletProcessor(options)
- : Any additional data that can be used for custom initialization of the underlying {{domxref("AudioWorkletProcessor")}}.

Note that there are default values for the first two properties, so even if there are no
_options_ object passed to the {{domxref("AudioWorkletNode.AudioWorkletNode",
"AudioWorkletNode constructor")}}, the _options_ object passed by the node to
_options_ object passed to the {{domxref("AudioWorkletNode.AudioWorkletNode", "AudioWorkletNode constructor")}}, the _options_ object passed by the node to
the `AudioWorkletProcessor` constructor will exist and at minimum have
`numberOfInputs` and `numberOfOutputs`.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ which returns an iterable of {{domxref("AudioParamDescriptor")}}-based objects.
The property is not a part of the {{domxref("AudioWorkletProcessor")}}
interface, but, if defined, it is called internally by the
{{domxref("AudioWorkletProcessor")}} constructor to create a list of custom
{{domxref("AudioParam")}} objects in the {{domxref("AudioWorkletNode.parameters",
"parameters")}} property of the associated {{domxref("AudioWorkletNode")}}.
{{domxref("AudioParam")}} objects in the {{domxref("AudioWorkletNode.parameters", "parameters")}}
property of the associated {{domxref("AudioWorkletNode")}}.

Defining the getter is optional.

Expand Down
6 changes: 2 additions & 4 deletions files/en-us/web/api/baseaudiocontext/createbuffer/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ browser-compat: api.BaseAudioContext.createBuffer

The `createBuffer()` method of the {{ domxref("BaseAudioContext") }}
Interface is used to create a new, empty {{ domxref("AudioBuffer") }} object, which
can then be populated by data, and played via an {{ domxref("AudioBufferSourceNode")
}}
can then be populated by data, and played via an {{ domxref("AudioBufferSourceNode")}}.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
can then be populated by data, and played via an {{ domxref("AudioBufferSourceNode")}}.
can then be populated by data, and played via an {{domxref("AudioBufferSourceNode")}}.


For more details about audio buffers, check out the {{ domxref("AudioBuffer") }}
reference page.
Expand Down Expand Up @@ -93,8 +92,7 @@ on an `AudioContext` running at 44100Hz, will be automatically \*resampled\* to
> reproduce high frequency content (treble sound).

Now let's look at a more complex `createBuffer()` example, in which we
create a three-second buffer, fill it with white noise, and then play it via an {{
domxref("AudioBufferSourceNode") }}. The comment should clearly explain what is going
create a three-second buffer, fill it with white noise, and then play it via an {{domxref("AudioBufferSourceNode")}}. The comment should clearly explain what is going
on. You can also [run the code live](https://mdn.github.io/webaudio-examples/audio-buffer/), or [view the source](https://github.com/mdn/webaudio-examples/blob/main/audio-buffer/index.html).

```js
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ browser-compat: api.BaseAudioContext.createBufferSource

The `createBufferSource()` method of the {{ domxref("BaseAudioContext") }}
Interface is used to create a new {{ domxref("AudioBufferSourceNode") }}, which can be
used to play audio data contained within an {{ domxref("AudioBuffer") }} object. {{
domxref("AudioBuffer") }}s are created using
used to play audio data contained within an {{ domxref("AudioBuffer") }} object.
{{domxref("AudioBuffer") }}s are created using
Comment on lines +13 to +14
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
used to play audio data contained within an {{ domxref("AudioBuffer") }} object.
{{domxref("AudioBuffer") }}s are created using
used to play audio data contained within an {{ domxref("AudioBuffer") }} object.
{{domxref("AudioBuffer")}}s are created using

{{domxref("BaseAudioContext.createBuffer")}} or returned by
{{domxref("BaseAudioContext.decodeAudioData")}} when it successfully decodes an audio
track.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.BaseAudioContext.createDynamicsCompressor

{{ APIRef("Web Audio API") }}

The `createDynamicsCompressor()` method of the {{
domxref("BaseAudioContext") }} Interface is used to create a
The `createDynamicsCompressor()` method of the {{domxref("BaseAudioContext")}} Interface is used to create a
{{domxref("DynamicsCompressorNode")}}, which can be used to apply compression to an
audio signal.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.BaseAudioContext.createIIRFilter

{{ APIRef("Web Audio API") }}

The **`createIIRFilter()`** method of the {{
domxref("BaseAudioContext") }} interface creates an {{ domxref("IIRFilterNode") }},
The **`createIIRFilter()`** method of the {{domxref("BaseAudioContext")}} interface creates an {{ domxref("IIRFilterNode") }},
which represents a general **[infinite impulse response](https://en.wikipedia.org/wiki/Infinite_impulse_response)** (IIR) filter which can be configured to serve as various types
of filter.

Expand Down
3 changes: 1 addition & 2 deletions files/en-us/web/api/baseaudiocontext/samplerate/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.BaseAudioContext.sampleRate

{{ APIRef("Web Audio API") }}

The `sampleRate` property of the {{
domxref("BaseAudioContext") }} interface returns a floating point number representing
The `sampleRate` property of the {{domxref("BaseAudioContext")}} interface returns a floating point number representing
the sample rate, in samples per second, used by all nodes in this audio
context. This limitation means that sample-rate converters are not supported.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ browser-compat: api.BiquadFilterNode.getFrequencyResponse

{{ APIRef("Web Audio API") }}

The `getFrequencyResponse()` method of the {{ domxref("BiquadFilterNode")
}} interface takes the current filtering algorithm's settings and calculates the
The `getFrequencyResponse()` method of the {{ domxref("BiquadFilterNode")}} interface takes the current filtering algorithm's settings and calculates the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `getFrequencyResponse()` method of the {{ domxref("BiquadFilterNode")}} interface takes the current filtering algorithm's settings and calculates the
The `getFrequencyResponse()` method of the {{domxref("BiquadFilterNode")}} interface takes the current filtering algorithm's settings and calculates the

frequency response for frequencies specified in a specified array of frequencies.

The two output arrays, `magResponseOutput` and
Expand Down
3 changes: 1 addition & 2 deletions files/en-us/web/api/blob/stream/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ several interesting capabilities:
**tee** the readable stream. This returns an array containing two new
`ReadableStream` objects, each of which returns the contents of the
`Blob`.
- Call the returned stream's {{domxref("ReadableStream.pipeThrough",
"pipeThrough()")}} method to pipe the stream through a {{domxref("TransformStream")}}
- Call the returned stream's {{domxref("ReadableStream.pipeThrough", "pipeThrough()")}} method to pipe the stream through a {{domxref("TransformStream")}}
or any other readable and writable pair.

## Specifications
Expand Down
Loading
Loading