2021-06-16 12:44:22 -07:00
|
|
|
# Web Streams API
|
|
|
|
|
2021-07-29 08:19:09 -04:00
|
|
|
<!--introduced_in=v16.5.0-->
|
|
|
|
|
2022-04-04 10:36:54 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v16.5.0
|
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: Use of this API no longer emit a runtime warning.
|
|
|
|
-->
|
2021-06-16 12:44:22 -07:00
|
|
|
|
2022-04-04 10:36:54 +02:00
|
|
|
> Stability: 1 - Experimental.
|
2021-06-16 12:44:22 -07:00
|
|
|
|
2022-04-04 10:36:54 +02:00
|
|
|
An implementation of the [WHATWG Streams Standard][].
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
The [WHATWG Streams Standard][] (or "web streams") defines an API for handling
|
|
|
|
streaming data. It is similar to the Node.js [Streams][] API but emerged later
|
|
|
|
and has become the "standard" API for streaming data across many JavaScript
|
|
|
|
environments.
|
|
|
|
|
2022-04-09 19:52:09 +02:00
|
|
|
There are three primary types of objects:
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
* `ReadableStream` - Represents a source of streaming data.
|
|
|
|
* `WritableStream` - Represents a destination for streaming data.
|
|
|
|
* `TransformStream` - Represents an algorithm for transforming streaming data.
|
|
|
|
|
|
|
|
### Example `ReadableStream`
|
|
|
|
|
|
|
|
This example creates a simple `ReadableStream` that pushes the current
|
|
|
|
`performance.now()` timestamp once every second forever. An async iterable
|
|
|
|
is used to read the data from the stream.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import {
|
|
|
|
ReadableStream
|
|
|
|
} from 'node:stream/web';
|
|
|
|
|
|
|
|
import {
|
|
|
|
setInterval as every
|
|
|
|
} from 'node:timers/promises';
|
|
|
|
|
|
|
|
import {
|
|
|
|
performance
|
|
|
|
} from 'node:perf_hooks';
|
|
|
|
|
|
|
|
const SECOND = 1000;
|
|
|
|
|
|
|
|
const stream = new ReadableStream({
|
|
|
|
async start(controller) {
|
|
|
|
for await (const _ of every(SECOND))
|
|
|
|
controller.enqueue(performance.now());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
for await (const value of stream)
|
|
|
|
console.log(value);
|
|
|
|
```
|
|
|
|
|
|
|
|
```cjs
|
|
|
|
const {
|
|
|
|
ReadableStream
|
|
|
|
} = require('stream/web');
|
|
|
|
|
|
|
|
const {
|
|
|
|
setInterval: every
|
|
|
|
} = require('timers/promises');
|
|
|
|
|
|
|
|
const {
|
|
|
|
performance
|
|
|
|
} = require('perf_hooks');
|
|
|
|
|
|
|
|
const SECOND = 1000;
|
|
|
|
|
|
|
|
const stream = new ReadableStream({
|
|
|
|
async start(controller) {
|
|
|
|
for await (const _ of every(SECOND))
|
|
|
|
controller.enqueue(performance.now());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
(async () => {
|
|
|
|
for await (const value of stream)
|
|
|
|
console.log(value);
|
|
|
|
})();
|
|
|
|
```
|
|
|
|
|
|
|
|
## API
|
|
|
|
|
|
|
|
### Class: `ReadableStream`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `new ReadableStream([underlyingSource [, strategy]])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
<!--lint disable maximum-line-length remark-lint-->
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
* `underlyingSource` {Object}
|
|
|
|
* `start` {Function} A user-defined function that is invoked immediately when
|
|
|
|
the `ReadableStream` is created.
|
|
|
|
* `controller` {ReadableStreamDefaultController|ReadableByteStreamController}
|
|
|
|
* Returns: `undefined` or a promise fulfilled with `undefined`.
|
|
|
|
* `pull` {Function} A user-defined function that is called repeatedly when the
|
|
|
|
`ReadableStream` internal queue is not full. The operation may be sync or
|
|
|
|
async. If async, the function will not be called again until the previously
|
|
|
|
returned promise is fulfilled.
|
|
|
|
* `controller` {ReadableStreamDefaultController|ReadableByteStreamController}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
* `cancel` {Function} A user-defined function that is called when the
|
|
|
|
`ReadableStream` is canceled.
|
|
|
|
* `reason` {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
* `type` {string} Must be `'bytes'` or `undefined`.
|
|
|
|
* `autoAllocateChunkSize` {number} Used only when `type` is equal to
|
|
|
|
`'bytes'`.
|
|
|
|
* `strategy` {Object}
|
|
|
|
* `highWaterMark` {number} The maximum internal queue size before backpressure
|
|
|
|
is applied.
|
|
|
|
* `size` {Function} A user-defined function used to identify the size of each
|
|
|
|
chunk of data.
|
|
|
|
* `chunk` {any}
|
|
|
|
* Returns: {number}
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!--lint enable maximum-line-length remark-lint-->
|
|
|
|
|
|
|
|
#### `readableStream.locked`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {boolean} Set to `true` if there is an active reader for this
|
|
|
|
{ReadableStream}.
|
|
|
|
|
|
|
|
The `readableStream.locked` property is `false` by default, and is
|
2022-02-13 16:49:05 +01:00
|
|
|
switched to `true` while there is an active reader consuming the
|
2021-06-16 12:44:22 -07:00
|
|
|
stream's data.
|
|
|
|
|
|
|
|
#### `readableStream.cancel([reason])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `reason` {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined` once cancelation has
|
|
|
|
been completed.
|
|
|
|
|
|
|
|
#### `readableStream.getReader([options])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `options` {Object}
|
|
|
|
* `mode` {string} `'byob'` or `undefined`
|
|
|
|
* Returns: {ReadableStreamDefaultReader|ReadableStreamBYOBReader}
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import { ReadableStream } from 'node:stream/web';
|
|
|
|
|
|
|
|
const stream = new ReadableStream();
|
|
|
|
|
|
|
|
const reader = stream.getReader();
|
|
|
|
|
|
|
|
console.log(await reader.read());
|
|
|
|
```
|
|
|
|
|
|
|
|
```cjs
|
|
|
|
const { ReadableStream } = require('stream/web');
|
|
|
|
|
|
|
|
const stream = new ReadableStream();
|
|
|
|
|
|
|
|
const reader = stream.getReader();
|
|
|
|
|
|
|
|
reader.read().then(console.log);
|
|
|
|
```
|
|
|
|
|
|
|
|
Causes the `readableStream.locked` to be `true`.
|
|
|
|
|
|
|
|
#### `readableStream.pipeThrough(transform[, options])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `transform` {Object}
|
|
|
|
* `readable` {ReadableStream} The `ReadableStream` to which
|
|
|
|
`transform.writable` will push the potentially modified data
|
|
|
|
is receives from this `ReadableStream`.
|
|
|
|
* `writable` {WritableStream} The `WritableStream` to which this
|
|
|
|
`ReadableStream`'s data will be written.
|
|
|
|
* `options` {Object}
|
|
|
|
* `preventAbort` {boolean} When `true`, errors in this `ReadableStream`
|
|
|
|
will not cause `transform.writable` to be aborted.
|
|
|
|
* `preventCancel` {boolean} When `true`, errors in the destination
|
|
|
|
`transform.writable` is not cause this `ReadableStream` to be
|
|
|
|
canceled.
|
|
|
|
* `preventClose` {boolean} When `true`, closing this `ReadableStream`
|
|
|
|
will no cause `transform.writable` to be closed.
|
|
|
|
* `signal` {AbortSignal} Allows the transfer of data to be canceled
|
|
|
|
using an {AbortController}.
|
|
|
|
* Returns: {ReadableStream} From `transform.readable`.
|
|
|
|
|
|
|
|
Connects this {ReadableStream} to the pair of {ReadableStream} and
|
|
|
|
{WritableStream} provided in the `transform` argument such that the
|
|
|
|
data from this {ReadableStream} is written in to `transform.writable`,
|
|
|
|
possibly transformed, then pushed to `transform.readable`. Once the
|
|
|
|
pipeline is configured, `transform.readable` is returned.
|
|
|
|
|
|
|
|
Causes the `readableStream.locked` to be `true` while the pipe operation
|
|
|
|
is active.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import {
|
|
|
|
ReadableStream,
|
|
|
|
TransformStream,
|
|
|
|
} from 'node:stream/web';
|
|
|
|
|
|
|
|
const stream = new ReadableStream({
|
|
|
|
start(controller) {
|
|
|
|
controller.enqueue('a');
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const transform = new TransformStream({
|
|
|
|
transform(chunk, controller) {
|
|
|
|
controller.enqueue(chunk.toUpperCase());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
const transformedStream = stream.pipeThrough(transform);
|
|
|
|
|
|
|
|
for await (const chunk of transformedStream)
|
|
|
|
console.log(chunk);
|
|
|
|
```
|
|
|
|
|
|
|
|
```cjs
|
|
|
|
const {
|
|
|
|
ReadableStream,
|
|
|
|
TransformStream,
|
|
|
|
} = require('stream/web');
|
|
|
|
|
|
|
|
const stream = new ReadableStream({
|
|
|
|
start(controller) {
|
|
|
|
controller.enqueue('a');
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const transform = new TransformStream({
|
|
|
|
transform(chunk, controller) {
|
|
|
|
controller.enqueue(chunk.toUpperCase());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
const transformedStream = stream.pipeThrough(transform);
|
|
|
|
|
|
|
|
(async () => {
|
|
|
|
for await (const chunk of transformedStream)
|
|
|
|
console.log(chunk);
|
|
|
|
})();
|
|
|
|
```
|
|
|
|
|
|
|
|
#### `readableStream.pipeTo(destination, options)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `destination` {WritableStream} A {WritableStream} to which this
|
|
|
|
`ReadableStream`'s data will be written.
|
|
|
|
* `options` {Object}
|
|
|
|
* `preventAbort` {boolean} When `true`, errors in this `ReadableStream`
|
|
|
|
will not cause `transform.writable` to be aborted.
|
|
|
|
* `preventCancel` {boolean} When `true`, errors in the destination
|
|
|
|
`transform.writable` is not cause this `ReadableStream` to be
|
|
|
|
canceled.
|
|
|
|
* `preventClose` {boolean} When `true`, closing this `ReadableStream`
|
|
|
|
will no cause `transform.writable` to be closed.
|
|
|
|
* `signal` {AbortSignal} Allows the transfer of data to be canceled
|
|
|
|
using an {AbortController}.
|
|
|
|
* Returns: A promise fulfilled with `undefined`
|
|
|
|
|
|
|
|
Causes the `readableStream.locked` to be `true` while the pipe operation
|
|
|
|
is active.
|
|
|
|
|
|
|
|
#### `readableStream.tee()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
2021-10-10 21:55:04 -07:00
|
|
|
* Returns: {ReadableStream\[]}
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
Returns a pair of new {ReadableStream} instances to which this
|
|
|
|
`ReadableStream`'s data will be forwarded. Each will receive the
|
|
|
|
same data.
|
|
|
|
|
|
|
|
Causes the `readableStream.locked` to be `true`.
|
|
|
|
|
|
|
|
#### `readableStream.values([options])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `options` {Object}
|
|
|
|
* `preventCancel` {boolean} When `true`, prevents the {ReadableStream}
|
|
|
|
from being closed when the async iterator abruptly terminates.
|
|
|
|
**Defaults**: `false`
|
|
|
|
|
|
|
|
Creates and returns an async iterator usable for consuming this
|
|
|
|
`ReadableStream`'s data.
|
|
|
|
|
|
|
|
Causes the `readableStream.locked` to be `true` while the async iterator
|
|
|
|
is active.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import { Buffer } from 'node:buffer';
|
|
|
|
|
|
|
|
const stream = new ReadableStream(getSomeSource());
|
|
|
|
|
|
|
|
for await (const chunk of stream.values({ preventCancel: true }))
|
|
|
|
console.log(Buffer.from(chunk).toString());
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Async Iteration
|
|
|
|
|
|
|
|
The {ReadableStream} object supports the async iterator protocol using
|
|
|
|
`for await` syntax.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import { Buffer } from 'buffer';
|
|
|
|
|
|
|
|
const stream = new ReadableStream(getSomeSource());
|
|
|
|
|
|
|
|
for await (const chunk of stream)
|
|
|
|
console.log(Buffer.from(chunk).toString());
|
|
|
|
```
|
|
|
|
|
|
|
|
The async iterator will consume the {ReadableStream} until it terminates.
|
|
|
|
|
|
|
|
By default, if the async iterator exits early (via either a `break`,
|
|
|
|
`return`, or a `throw`), the {ReadableStream} will be closed. To prevent
|
|
|
|
automatic closing of the {ReadableStream}, use the `readableStream.values()`
|
|
|
|
method to acquire the async iterator and set the `preventCancel` option to
|
|
|
|
`true`.
|
|
|
|
|
|
|
|
The {ReadableStream} must not be locked (that is, it must not have an existing
|
|
|
|
active reader). During the async iteration, the {ReadableStream} will be locked.
|
|
|
|
|
2021-07-11 17:51:31 +02:00
|
|
|
#### Transferring with `postMessage()`
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
A {ReadableStream} instance can be transferred using a {MessagePort}.
|
|
|
|
|
|
|
|
```js
|
|
|
|
const stream = new ReadableStream(getReadableSourceSomehow());
|
|
|
|
|
|
|
|
const { port1, port2 } = new MessageChannel();
|
|
|
|
|
|
|
|
port1.onmessage = ({ data }) => {
|
|
|
|
data.getReader().read().then((chunk) => {
|
|
|
|
console.log(chunk);
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
port2.postMessage(stream, [stream]);
|
|
|
|
```
|
|
|
|
|
|
|
|
### Class: `ReadableStreamDefaultReader`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
By default, calling `readableStream.getReader()` with no arguments
|
|
|
|
will return an instance of `ReadableStreamDefaultReader`. The default
|
|
|
|
reader treats the chunks of data passed through the stream as opaque
|
|
|
|
values, which allows the {ReadableStream} to work with generally any
|
|
|
|
JavaScript value.
|
|
|
|
|
|
|
|
#### `new ReadableStreamDefaultReader(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {ReadableStream}
|
|
|
|
|
|
|
|
Creates a new {ReadableStreamDefaultReader} that is locked to the
|
|
|
|
given {ReadableStream}.
|
|
|
|
|
|
|
|
#### `readableStreamDefaultReader.cancel([reason])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `reason` {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
|
|
|
|
Cancels the {ReadableStream} and returns a promise that is fulfilled
|
|
|
|
when the underlying stream has been canceled.
|
|
|
|
|
|
|
|
#### `readableStreamDefaultReader.closed`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {Promise} Fulfilled with `undefined` when the associated
|
2022-02-05 18:39:00 +02:00
|
|
|
{ReadableStream} is closed or rejected if the stream errors or the reader's
|
|
|
|
lock is released before the stream finishes closing.
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
#### `readableStreamDefaultReader.read()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Returns: A promise fulfilled with an object:
|
|
|
|
* `value` {ArrayBuffer}
|
|
|
|
* `done` {boolean}
|
|
|
|
|
|
|
|
Requests the next chunk of data from the underlying {ReadableStream}
|
|
|
|
and returns a promise that is fulfilled with the data once it is
|
|
|
|
available.
|
|
|
|
|
|
|
|
#### `readableStreamDefaultReader.releaseLock()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Releases this reader's lock on the underlying {ReadableStream}.
|
|
|
|
|
|
|
|
### Class: `ReadableStreamBYOBReader`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
The `ReadableStreamBYOBReader` is an alternative consumer for
|
|
|
|
byte-oriented {ReadableStream}'s (those that are created with
|
2021-10-10 21:55:04 -07:00
|
|
|
`underlyingSource.type` set equal to `'bytes'` when the
|
2021-06-16 12:44:22 -07:00
|
|
|
`ReadableStream` was created).
|
|
|
|
|
|
|
|
The `BYOB` is short for "bring your own buffer". This is a
|
|
|
|
pattern that allows for more efficient reading of byte-oriented
|
|
|
|
data that avoids extraneous copying.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import {
|
|
|
|
open
|
|
|
|
} from 'node:fs/promises';
|
|
|
|
|
|
|
|
import {
|
|
|
|
ReadableStream
|
|
|
|
} from 'node:stream/web';
|
|
|
|
|
|
|
|
import { Buffer } from 'node:buffer';
|
|
|
|
|
|
|
|
class Source {
|
|
|
|
type = 'bytes';
|
|
|
|
autoAllocateChunkSize = 1024;
|
|
|
|
|
|
|
|
async start(controller) {
|
|
|
|
this.file = await open(new URL(import.meta.url));
|
|
|
|
this.controller = controller;
|
|
|
|
}
|
|
|
|
|
|
|
|
async pull(controller) {
|
|
|
|
const view = controller.byobRequest?.view;
|
|
|
|
const {
|
|
|
|
bytesRead,
|
|
|
|
} = await this.file.read({
|
|
|
|
buffer: view,
|
|
|
|
offset: view.byteOffset,
|
|
|
|
length: view.byteLength
|
|
|
|
});
|
|
|
|
|
|
|
|
if (bytesRead === 0) {
|
|
|
|
await this.file.close();
|
|
|
|
this.controller.close();
|
|
|
|
}
|
|
|
|
controller.byobRequest.respond(bytesRead);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const stream = new ReadableStream(new Source());
|
|
|
|
|
|
|
|
async function read(stream) {
|
|
|
|
const reader = stream.getReader({ mode: 'byob' });
|
|
|
|
|
|
|
|
const chunks = [];
|
|
|
|
let result;
|
|
|
|
do {
|
|
|
|
result = await reader.read(Buffer.alloc(100));
|
|
|
|
if (result.value !== undefined)
|
|
|
|
chunks.push(Buffer.from(result.value));
|
|
|
|
} while (!result.done);
|
|
|
|
|
|
|
|
return Buffer.concat(chunks);
|
|
|
|
}
|
|
|
|
|
|
|
|
const data = await read(stream);
|
|
|
|
console.log(Buffer.from(data).toString());
|
|
|
|
```
|
|
|
|
|
|
|
|
#### `new ReadableStreamBYOBReader(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {ReadableStream}
|
|
|
|
|
|
|
|
Creates a new `ReadableStreamBYOBReader` that is locked to the
|
|
|
|
given {ReadableStream}.
|
|
|
|
|
|
|
|
#### `readableStreamBYOBReader.cancel([reason])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `reason` {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
|
|
|
|
Cancels the {ReadableStream} and returns a promise that is fulfilled
|
|
|
|
when the underlying stream has been canceled.
|
|
|
|
|
|
|
|
#### `readableStreamBYOBReader.closed`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {Promise} Fulfilled with `undefined` when the associated
|
2022-02-05 18:39:00 +02:00
|
|
|
{ReadableStream} is closed or rejected if the stream errors or the reader's
|
|
|
|
lock is released before the stream finishes closing.
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
#### `readableStreamBYOBReader.read(view)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `view` {Buffer|TypedArray|DataView}
|
|
|
|
* Returns: A promise fulfilled with an object:
|
|
|
|
* `value` {ArrayBuffer}
|
|
|
|
* `done` {boolean}
|
|
|
|
|
|
|
|
Requests the next chunk of data from the underlying {ReadableStream}
|
|
|
|
and returns a promise that is fulfilled with the data once it is
|
|
|
|
available.
|
|
|
|
|
|
|
|
Do not pass a pooled {Buffer} object instance in to this method.
|
|
|
|
Pooled `Buffer` objects are created using `Buffer.allocUnsafe()`,
|
|
|
|
or `Buffer.from()`, or are often returned by various `fs` module
|
|
|
|
callbacks. These types of `Buffer`s use a shared underlying
|
|
|
|
{ArrayBuffer} object that contains all of the data from all of
|
|
|
|
the pooled `Buffer` instances. When a `Buffer`, {TypedArray},
|
|
|
|
or {DataView} is passed in to `readableStreamBYOBReader.read()`,
|
2021-10-10 21:55:04 -07:00
|
|
|
the view's underlying `ArrayBuffer` is _detached_, invalidating
|
2021-06-16 12:44:22 -07:00
|
|
|
all existing views that may exist on that `ArrayBuffer`. This
|
2021-07-11 17:51:31 +02:00
|
|
|
can have disastrous consequences for your application.
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
#### `readableStreamBYOBReader.releaseLock()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Releases this reader's lock on the underlying {ReadableStream}.
|
|
|
|
|
|
|
|
### Class: `ReadableStreamDefaultController`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Every {ReadableStream} has a controller that is responsible for
|
|
|
|
the internal state and management of the stream's queue. The
|
|
|
|
`ReadableStreamDefaultController` is the default controller
|
|
|
|
implementation for `ReadableStream`s that are not byte-oriented.
|
|
|
|
|
|
|
|
#### `readableStreamDefaultController.close()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Closes the {ReadableStream} to which this controller is associated.
|
|
|
|
|
|
|
|
#### `readableStreamDefaultController.desiredSize`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {number}
|
|
|
|
|
|
|
|
Returns the amount of data remaining to fill the {ReadableStream}'s
|
|
|
|
queue.
|
|
|
|
|
|
|
|
#### `readableStreamDefaultController.enqueue(chunk)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `chunk` {any}
|
|
|
|
|
|
|
|
Appends a new chunk of data to the {ReadableStream}'s queue.
|
|
|
|
|
|
|
|
#### `readableStreamDefaultController.error(error)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
Signals an error that causes the {ReadableStream} to error and close.
|
|
|
|
|
|
|
|
### Class: `ReadableByteStreamController`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Every {ReadableStream} has a controller that is responsible for
|
|
|
|
the internal state and management of the stream's queue. The
|
|
|
|
`ReadableByteStreamController` is for byte-oriented `ReadableStream`s.
|
|
|
|
|
|
|
|
#### `readableByteStreamController.byobRequest`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {ReadableStreamBYOBRequest}
|
|
|
|
|
|
|
|
#### `readableByteStreamController.close()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Closes the {ReadableStream} to which this controller is associated.
|
|
|
|
|
|
|
|
#### `readableByteStreamController.desiredSize`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {number}
|
|
|
|
|
|
|
|
Returns the amount of data remaining to fill the {ReadableStream}'s
|
|
|
|
queue.
|
|
|
|
|
|
|
|
#### `readableByteStreamController.enqueue(chunk)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `chunk`: {Buffer|TypedArray|DataView}
|
|
|
|
|
|
|
|
Appends a new chunk of data to the {ReadableStream}'s queue.
|
|
|
|
|
|
|
|
#### `readableByteStreamController.error(error)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
Signals an error that causes the {ReadableStream} to error and close.
|
|
|
|
|
|
|
|
### Class: `ReadableStreamBYOBRequest`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
When using `ReadableByteStreamController` in byte-oriented
|
|
|
|
streams, and when using the `ReadableStreamBYOBReader`,
|
|
|
|
the `readableByteStreamController.byobRequest` property
|
|
|
|
provides access to a `ReadableStreamBYOBRequest` instance
|
|
|
|
that represents the current read request. The object
|
|
|
|
is used to gain access to the `ArrayBuffer`/`TypedArray`
|
|
|
|
that has been provided for the read request to fill,
|
|
|
|
and provides methods for signaling that the data has
|
|
|
|
been provided.
|
|
|
|
|
|
|
|
#### `readableStreamBYOBRequest.respond(bytesWritten)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `bytesWritten` {number}
|
|
|
|
|
|
|
|
Signals that a `bytesWritten` number of bytes have been written
|
|
|
|
to `readableStreamBYOBRequest.view`.
|
|
|
|
|
|
|
|
#### `readableStreamBYOBRequest.respondWithNewView(view)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `view` {Buffer|TypedArray|DataView}
|
|
|
|
|
|
|
|
Signals that the request has been fulfilled with bytes written
|
|
|
|
to a new `Buffer`, `TypedArray`, or `DataView`.
|
|
|
|
|
|
|
|
#### `readableStreamBYOBRequest.view`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {Buffer|TypedArray|DataView}
|
|
|
|
|
|
|
|
### Class: `WritableStream`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
The `WritableStream` is a destination to which stream data is sent.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import {
|
|
|
|
WritableStream
|
|
|
|
} from 'node:stream/web';
|
|
|
|
|
|
|
|
const stream = new WritableStream({
|
|
|
|
write(chunk) {
|
|
|
|
console.log(chunk);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
await stream.getWriter().write('Hello World');
|
|
|
|
```
|
|
|
|
|
|
|
|
#### `new WritableStream([underlyingSink[, strategy]])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `underlyingSink` {Object}
|
|
|
|
* `start` {Function} A user-defined function that is invoked immediately when
|
|
|
|
the `WritableStream` is created.
|
|
|
|
* `controller` {WritableStreamDefaultController}
|
|
|
|
* Returns: `undefined` or a promise fulfilled with `undefined`.
|
|
|
|
* `write` {Function} A user-defined function that is invoked when a chunk of
|
|
|
|
data has been written to the `WritableStream`.
|
|
|
|
* `chunk` {any}
|
|
|
|
* `controller` {WritableStreamDefaultController}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
* `close` {Function} A user-defined function that is called when the
|
|
|
|
`WritableStream` is closed.
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
* `abort` {Function} A user-defined function that is called to abruptly close
|
|
|
|
the `WritableStream`.
|
|
|
|
* `reason` {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
2021-10-10 21:55:04 -07:00
|
|
|
* `type` {any} The `type` option is reserved for future use and _must_ be
|
2021-06-16 12:44:22 -07:00
|
|
|
undefined.
|
|
|
|
* `strategy` {Object}
|
|
|
|
* `highWaterMark` {number} The maximum internal queue size before backpressure
|
|
|
|
is applied.
|
|
|
|
* `size` {Function} A user-defined function used to identify the size of each
|
|
|
|
chunk of data.
|
|
|
|
* `chunk` {any}
|
|
|
|
* Returns: {number}
|
|
|
|
|
|
|
|
#### `writableStream.abort([reason])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `reason` {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
|
|
|
|
Abruptly terminates the `WritableStream`. All queued writes will be
|
|
|
|
canceled with their associated promises rejected.
|
|
|
|
|
|
|
|
#### `writableStream.close()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
|
|
|
|
Closes the `WritableStream` when no additional writes are expected.
|
|
|
|
|
|
|
|
#### `writableStream.getWriter()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Returns: {WritableStreamDefaultWriter}
|
|
|
|
|
|
|
|
Creates and creates a new writer instance that can be used to write
|
|
|
|
data into the `WritableStream`.
|
|
|
|
|
|
|
|
#### `writableStream.locked`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {boolean}
|
|
|
|
|
|
|
|
The `writableStream.locked` property is `false` by default, and is
|
|
|
|
switched to `true` while there is an active writer attached to this
|
|
|
|
`WritableStream`.
|
|
|
|
|
2021-07-11 17:51:31 +02:00
|
|
|
#### Transferring with postMessage()
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
A {WritableStream} instance can be transferred using a {MessagePort}.
|
|
|
|
|
|
|
|
```js
|
|
|
|
const stream = new WritableStream(getWritableSinkSomehow());
|
|
|
|
|
|
|
|
const { port1, port2 } = new MessageChannel();
|
|
|
|
|
|
|
|
port1.onmessage = ({ data }) => {
|
|
|
|
data.getWriter().write('hello');
|
|
|
|
};
|
|
|
|
|
|
|
|
port2.postMessage(stream, [stream]);
|
|
|
|
```
|
|
|
|
|
|
|
|
### Class: `WritableStreamDefaultWriter`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `new WritableStreamDefaultWriter(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {WritableStream}
|
|
|
|
|
|
|
|
Creates a new `WritableStreamDefaultWriter` that is locked to the given
|
|
|
|
`WritableStream`.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultWriter.abort([reason])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `reason` {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
|
|
|
|
Abruptly terminates the `WritableStream`. All queued writes will be
|
|
|
|
canceled with their associated promises rejected.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultWriter.close()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
|
|
|
|
Closes the `WritableStream` when no additional writes are expected.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultWriter.closed`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
2022-02-05 18:39:00 +02:00
|
|
|
* Type: {Promise} Fulfilled with `undefined` when the associated
|
|
|
|
{WritableStream} is closed or rejected if the stream errors or the writer's
|
|
|
|
lock is released before the stream finishes closing.
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
#### `writableStreamDefaultWriter.desiredSize`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {number}
|
|
|
|
|
|
|
|
The amount of data required to fill the {WritableStream}'s queue.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultWriter.ready`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* type: A promise that is fulfilled with `undefined` when the
|
|
|
|
writer is ready to be used.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultWriter.releaseLock()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Releases this writer's lock on the underlying {ReadableStream}.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultWriter.write([chunk])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `chunk`: {any}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
|
|
|
|
Appends a new chunk of data to the {WritableStream}'s queue.
|
|
|
|
|
|
|
|
### Class: `WritableStreamDefaultController`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
The `WritableStreamDefaultController` manage's the {WritableStream}'s
|
|
|
|
internal state.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultController.abortReason`
|
|
|
|
|
|
|
|
* Type: {any} The `reason` value passed to `writableStream.abort()`.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultController.error(error)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `error` {any}
|
|
|
|
|
|
|
|
Called by user-code to signal that an error has occurred while processing
|
|
|
|
the `WritableStream` data. When called, the {WritableStream} will be aborted,
|
|
|
|
with currently pending writes canceled.
|
|
|
|
|
|
|
|
#### `writableStreamDefaultController.signal`
|
|
|
|
|
|
|
|
* Type: {AbortSignal} An `AbortSignal` that can be used to cancel pending
|
|
|
|
write or close operations when a {WritableStream} is aborted.
|
|
|
|
|
|
|
|
### Class: `TransformStream`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
A `TransformStream` consists of a {ReadableStream} and a {WritableStream} that
|
|
|
|
are connected such that the data written to the `WritableStream` is received,
|
|
|
|
and potentially transformed, before being pushed into the `ReadableStream`'s
|
|
|
|
queue.
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import {
|
|
|
|
TransformStream
|
|
|
|
} from 'node:stream/web';
|
|
|
|
|
|
|
|
const transform = new TransformStream({
|
|
|
|
transform(chunk, controller) {
|
|
|
|
controller.enqueue(chunk.toUpperCase());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
await Promise.all([
|
|
|
|
transform.writable.getWriter().write('A'),
|
|
|
|
transform.readable.getReader().read(),
|
|
|
|
]);
|
|
|
|
```
|
|
|
|
|
|
|
|
#### `new TransformStream([transformer[, writableStrategy[, readableStrategy]]])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `transformer` {Object}
|
|
|
|
* `start` {Function} A user-defined function that is invoked immediately when
|
|
|
|
the `TransformStream` is created.
|
|
|
|
* `controller` {TransformStreamDefaultController}
|
|
|
|
* Returns: `undefined` or a promise fulfilled with `undefined`
|
|
|
|
* `transform` {Function} A user-defined function that receives, and
|
|
|
|
potentially modifies, a chunk of data written to `transformStream.writable`,
|
|
|
|
before forwarding that on to `transformStream.readable`.
|
|
|
|
* `chunk` {any}
|
|
|
|
* `controller` {TransformStreamDefaultController}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
* `flush` {Function} A user-defined function that is called immediately before
|
|
|
|
the writable side of the `TransformStream` is closed, signaling the end of
|
|
|
|
the transformation process.
|
|
|
|
* `controller` {TransformStreamDefaultController}
|
|
|
|
* Returns: A promise fulfilled with `undefined`.
|
|
|
|
* `readableType` {any} the `readableType` option is reserved for future use
|
2021-10-10 21:55:04 -07:00
|
|
|
and _must_ be `undefined`.
|
2021-06-16 12:44:22 -07:00
|
|
|
* `writableType` {any} the `writableType` option is reserved for future use
|
2021-10-10 21:55:04 -07:00
|
|
|
and _must_ be `undefined`.
|
2021-06-16 12:44:22 -07:00
|
|
|
* `writableStrategy` {Object}
|
|
|
|
* `highWaterMark` {number} The maximum internal queue size before backpressure
|
|
|
|
is applied.
|
|
|
|
* `size` {Function} A user-defined function used to identify the size of each
|
|
|
|
chunk of data.
|
|
|
|
* `chunk` {any}
|
|
|
|
* Returns: {number}
|
|
|
|
* `readableStrategy` {Object}
|
|
|
|
* `highWaterMark` {number} The maximum internal queue size before backpressure
|
|
|
|
is applied.
|
|
|
|
* `size` {Function} A user-defined function used to identify the size of each
|
|
|
|
chunk of data.
|
|
|
|
* `chunk` {any}
|
|
|
|
* Returns: {number}
|
|
|
|
|
|
|
|
#### `transformStream.readable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {ReadableStream}
|
|
|
|
|
|
|
|
#### `transformStream.writable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {WritableStream}
|
|
|
|
|
2021-07-11 17:51:31 +02:00
|
|
|
#### Transferring with postMessage()
|
2021-06-16 12:44:22 -07:00
|
|
|
|
|
|
|
A {TransformStream} instance can be transferred using a {MessagePort}.
|
|
|
|
|
|
|
|
```js
|
|
|
|
const stream = new TransformStream();
|
|
|
|
|
|
|
|
const { port1, port2 } = new MessageChannel();
|
|
|
|
|
|
|
|
port1.onmessage = ({ data }) => {
|
|
|
|
const { writable, readable } = data;
|
|
|
|
// ...
|
|
|
|
};
|
|
|
|
|
|
|
|
port2.postMessage(stream, [stream]);
|
|
|
|
```
|
|
|
|
|
|
|
|
### Class: `TransformStreamDefaultController`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
The `TransformStreamDefaultController` manages the internal state
|
|
|
|
of the `TransformStream`.
|
|
|
|
|
|
|
|
#### `transformStreamDefaultController.desiredSize`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {number}
|
|
|
|
|
|
|
|
The amount of data required to fill the readable side's queue.
|
|
|
|
|
|
|
|
#### `transformStreamDefaultController.enqueue([chunk])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `chunk` {any}
|
|
|
|
|
|
|
|
Appends a chunk of data to the readable side's queue.
|
|
|
|
|
|
|
|
#### `transformStreamDefaultController.error([reason])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `reason` {any}
|
|
|
|
|
2021-07-11 17:51:31 +02:00
|
|
|
Signals to both the readable and writable side that an error has occurred
|
2021-06-16 12:44:22 -07:00
|
|
|
while processing the transform data, causing both sides to be abruptly
|
|
|
|
closed.
|
|
|
|
|
|
|
|
#### `transformStreamDefaultController.terminate()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Closes the readable side of the transport and causes the writable side
|
|
|
|
to be abruptly closed with an error.
|
|
|
|
|
|
|
|
### Class: `ByteLengthQueuingStrategy`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `new ByteLengthQueuingStrategy(options)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `options` {Object}
|
|
|
|
* `highWaterMark` {number}
|
|
|
|
|
|
|
|
#### `byteLengthQueuingStrategy.highWaterMark`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {number}
|
|
|
|
|
|
|
|
#### `byteLengthQueuingStrategy.size`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {Function}
|
|
|
|
* `chunk` {any}
|
|
|
|
* Returns: {number}
|
|
|
|
|
|
|
|
### Class: `CountQueuingStrategy`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `new CountQueuingStrategy(options)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `options` {Object}
|
|
|
|
* `highWaterMark` {number}
|
|
|
|
|
|
|
|
#### `countQueuingStrategy.highWaterMark`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {number}
|
|
|
|
|
|
|
|
#### `countQueuingStrategy.size`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
<!-- YAML
|
2021-07-13 08:33:13 +02:00
|
|
|
added: v16.5.0
|
2021-06-16 12:44:22 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {Function}
|
|
|
|
* `chunk` {any}
|
|
|
|
* Returns: {number}
|
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
### Class: `TextEncoderStream`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `new TextEncoderStream()`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
Creates a new `TextEncoderStream` instance.
|
|
|
|
|
|
|
|
#### `textEncoderStream.encoding`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {string}
|
|
|
|
|
|
|
|
The encoding supported by the `TextEncoderStream` instance.
|
|
|
|
|
|
|
|
#### `textEncoderStream.readable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {ReadableStream}
|
|
|
|
|
|
|
|
#### `textEncoderStream.writable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {WritableStream}
|
|
|
|
|
|
|
|
### Class: `TextDecoderStream`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `new TextDecoderStream([encoding[, options]])`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `encoding` {string} Identifies the `encoding` that this `TextDecoder` instance
|
|
|
|
supports. **Default:** `'utf-8'`.
|
|
|
|
* `options` {Object}
|
|
|
|
* `fatal` {boolean} `true` if decoding failures are fatal.
|
|
|
|
* `ignoreBOM` {boolean} When `true`, the `TextDecoderStream` will include the
|
|
|
|
byte order mark in the decoded result. When `false`, the byte order mark
|
|
|
|
will be removed from the output. This option is only used when `encoding` is
|
|
|
|
`'utf-8'`, `'utf-16be'` or `'utf-16le'`. **Default:** `false`.
|
|
|
|
|
|
|
|
Creates a new `TextDecoderStream` instance.
|
|
|
|
|
|
|
|
#### `textDecoderStream.encoding`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {string}
|
|
|
|
|
|
|
|
The encoding supported by the `TextDecoderStream` instance.
|
|
|
|
|
|
|
|
#### `textDecoderStream.fatal`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {boolean}
|
|
|
|
|
|
|
|
The value will be `true` if decoding errors result in a `TypeError` being
|
|
|
|
thrown.
|
|
|
|
|
|
|
|
#### `textDecoderStream.ignoreBOM`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {boolean}
|
|
|
|
|
|
|
|
The value will be `true` if the decoding result will include the byte order
|
|
|
|
mark.
|
|
|
|
|
|
|
|
#### `textDecoderStream.readable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {ReadableStream}
|
|
|
|
|
|
|
|
#### `textDecoderStream.writable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 19:26:31 -07:00
|
|
|
<!-- YAML
|
2021-07-26 17:42:52 +01:00
|
|
|
added: v16.6.0
|
2021-07-10 19:26:31 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {WritableStream}
|
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
### Class: `CompressionStream`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
#### `new CompressionStream(format)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `format` {string} One of either `'deflate'` or `'gzip'`.
|
|
|
|
|
|
|
|
#### `compressionStream.readable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {ReadableStream}
|
|
|
|
|
|
|
|
#### `compressionStream.writable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {WritableStream}
|
|
|
|
|
|
|
|
### Class: `DecompressionStream`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2022-04-04 10:36:54 +02:00
|
|
|
changes:
|
|
|
|
- version: REPLACEME
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/42225
|
|
|
|
description: This class is now exposed on the global object.
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
#### `new DecompressionStream(format)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `format` {string} One of either `'deflate'` or `'gzip'`.
|
|
|
|
|
|
|
|
#### `decompressionStream.readable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {ReadableStream}
|
|
|
|
|
2021-08-26 14:37:10 +02:00
|
|
|
#### `decompressionStream.writable`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-10 20:56:56 -07:00
|
|
|
<!-- YAML
|
2021-10-19, Version 17.0.0 (Current)
Notable Changes:
Deprecations and Removals:
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- doc: deprecate (doc-only) http abort related
(dr-js) [https://github.com/nodejs/node/pull/36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
OpenSSL 3.0:
Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support.
While OpenSSL 3.0 APIs should be mostly compatible with those provided
by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to
tightened restrictions on the allowed algorithms and key sizes.
If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with
Node.js 17, it’s likely that your application or a module you’re using
is attempting to use an algorithm or key size which is no longer allowed
by default with OpenSSL 3.0. A command-line option,
`--openssl-legacy-provider`, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.
For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
Contributed in https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478
V8 9.5:
The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
Readline Promise API:
The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
Other Notable Changes:
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
cause exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- deps: upgrade npm to 8.1.0
(npm team) [https://github.com/nodejs/node/pull/40463]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
(James M Snell) [https://github.com/nodejs/node/pull/39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
Semver-Major Commits:
- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
(Richard Lau) [https://github.com/nodejs/node/pull/38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
(Michaël Zasso) [https://github.com/nodejs/node/pull/40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
(Daniel Bevenius) [https://github.com/nodejs/node/pull/38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
(Voltrex) [https://github.com/nodejs/node/pull/39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
(Antoine du Hamel) [https://github.com/nodejs/node/pull/39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
(treysis) [https://github.com/nodejs/node/pull/39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
(Michaël Zasso) [https://github.com/nodejs/node/pull/40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
(Divlo) [https://github.com/nodejs/node/pull/38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
(Nitzan Uziely) [https://github.com/nodejs/node/pull/38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
(Ethan Arrowood) [https://github.com/nodejs/node/pull/39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
(Khaidi Chu) [https://github.com/nodejs/node/pull/39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
(Guy Bedford) [https://github.com/nodejs/node/pull/40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
(Guy Bedford) [https://github.com/nodejs/node/pull/40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
(Antoine du Hamel) [https://github.com/nodejs/node/pull/37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
(Daniel Bevenius) [https://github.com/nodejs/node/pull/37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
(Darshan Sen) [https://github.com/nodejs/node/pull/39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
(Shelley Vohr) [https://github.com/nodejs/node/pull/38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
(Rongjian Zhang) [https://github.com/nodejs/node/pull/38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
(Robert Nagy) [https://github.com/nodejs/node/pull/39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
(Szymon Marczak) [https://github.com/nodejs/node/pull/39607]
- (SEMVER-MAJOR) stream: forward errored to callback
(Robert Nagy) [https://github.com/nodejs/node/pull/39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
(Robert Nagy) [https://github.com/nodejs/node/pull/39342]
- (SEMVER-MAJOR) stream: validate abort signal
(Robert Nagy) [https://github.com/nodejs/node/pull/39346]
- (SEMVER-MAJOR) stream: unify stream utils
(Robert Nagy) [https://github.com/nodejs/node/pull/39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
(Darshan Sen) [https://github.com/nodejs/node/pull/39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
(Robert Nagy) [https://github.com/nodejs/node/pull/39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
(Robert Nagy) [https://github.com/nodejs/node/pull/34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
(Robert Nagy) [https://github.com/nodejs/node/pull/38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
(James M Snell) [https://github.com/nodejs/node/pull/39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
(Timothy Gu) [https://github.com/nodejs/node/pull/38631]
PR-URL: https://github.com/nodejs/node/pull/40119
2021-09-15 01:55:37 +01:00
|
|
|
added: v17.0.0
|
2021-07-10 20:56:56 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* Type: {WritableStream}
|
|
|
|
|
2021-07-30 15:02:13 -07:00
|
|
|
### Utility Consumers
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-30 15:02:13 -07:00
|
|
|
<!-- YAML
|
2021-08-16 17:03:53 -04:00
|
|
|
added: v16.7.0
|
2021-07-30 15:02:13 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
The utility consumer functions provide common options for consuming
|
|
|
|
streams.
|
|
|
|
|
|
|
|
They are accessed using:
|
|
|
|
|
|
|
|
```mjs
|
|
|
|
import {
|
|
|
|
arrayBuffer,
|
|
|
|
blob,
|
2022-02-14 16:23:01 +01:00
|
|
|
buffer,
|
2021-07-30 15:02:13 -07:00
|
|
|
json,
|
|
|
|
text,
|
|
|
|
} from 'node:stream/consumers';
|
|
|
|
```
|
|
|
|
|
|
|
|
```cjs
|
|
|
|
const {
|
|
|
|
arrayBuffer,
|
|
|
|
blob,
|
2022-02-14 16:23:01 +01:00
|
|
|
buffer,
|
2021-07-30 15:02:13 -07:00
|
|
|
json,
|
|
|
|
text,
|
|
|
|
} = require('stream/consumers');
|
|
|
|
```
|
|
|
|
|
|
|
|
#### `streamConsumers.arrayBuffer(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-30 15:02:13 -07:00
|
|
|
<!-- YAML
|
2021-08-16 17:03:53 -04:00
|
|
|
added: v16.7.0
|
2021-07-30 15:02:13 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {ReadableStream|stream.Readable|AsyncIterator}
|
|
|
|
* Returns: {Promise} Fulfills with an `ArrayBuffer` containing the full
|
|
|
|
contents of the stream.
|
|
|
|
|
|
|
|
#### `streamConsumers.blob(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-30 15:02:13 -07:00
|
|
|
<!-- YAML
|
2021-08-16 17:03:53 -04:00
|
|
|
added: v16.7.0
|
2021-07-30 15:02:13 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {ReadableStream|stream.Readable|AsyncIterator}
|
|
|
|
* Returns: {Promise} Fulfills with a {Blob} containing the full contents
|
|
|
|
of the stream.
|
|
|
|
|
|
|
|
#### `streamConsumers.buffer(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-30 15:02:13 -07:00
|
|
|
<!-- YAML
|
2021-08-16 17:03:53 -04:00
|
|
|
added: v16.7.0
|
2021-07-30 15:02:13 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {ReadableStream|stream.Readable|AsyncIterator}
|
|
|
|
* Returns: {Promise} Fulfills with a {Buffer} containing the full
|
|
|
|
contents of the stream.
|
|
|
|
|
|
|
|
#### `streamConsumers.json(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-30 15:02:13 -07:00
|
|
|
<!-- YAML
|
2021-08-16 17:03:53 -04:00
|
|
|
added: v16.7.0
|
2021-07-30 15:02:13 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {ReadableStream|stream.Readable|AsyncIterator}
|
|
|
|
* Returns: {Promise} Fulfills with the contents of the stream parsed as a
|
|
|
|
UTF-8 encoded string that is then passed through `JSON.parse()`.
|
|
|
|
|
|
|
|
#### `streamConsumers.text(stream)`
|
2021-10-10 21:55:04 -07:00
|
|
|
|
2021-07-30 15:02:13 -07:00
|
|
|
<!-- YAML
|
2021-08-16 17:03:53 -04:00
|
|
|
added: v16.7.0
|
2021-07-30 15:02:13 -07:00
|
|
|
-->
|
|
|
|
|
|
|
|
* `stream` {ReadableStream|stream.Readable|AsyncIterator}
|
|
|
|
* Returns: {Promise} Fulfills with the contents of the stream parsed as a
|
|
|
|
UTF-8 encoded string.
|
|
|
|
|
2021-06-16 12:44:22 -07:00
|
|
|
[Streams]: stream.md
|
|
|
|
[WHATWG Streams Standard]: https://streams.spec.whatwg.org/
|