stream: copyedit `webstreams/adapter.js` · nodejs/node@7792f1a
@@ -2,13 +2,11 @@
2233const {
44 ArrayPrototypeFilter,
5- ArrayPrototypeMap,
6- Boolean,
7- ObjectEntries,
5+ ObjectKeys,
86 PromisePrototypeThen,
97 PromiseResolve,
108 PromiseWithResolvers,
11-SafePromiseAll,
9+SafePromiseAllReturnVoid,
1210 SafePromisePrototypeFinally,
1311 SafeSet,
1412 StringPrototypeStartsWith,
@@ -73,6 +71,7 @@ const {
7371const {
7472 kEmptyObject,
7573 normalizeEncoding,
74+ setOwnProperty,
7675} = require('internal/util');
77767877const {
@@ -92,6 +91,7 @@ const {
92919392const { eos } = require('internal/streams/end-of-stream');
949394+const { zlib } = internalBinding('constants');
9595const { UV_EOF } = internalBinding('uv');
96969797const encoder = new TextEncoder();
@@ -100,37 +100,34 @@ const kValidateChunk = Symbol('kValidateChunk');
100100const kDestroyOnSyncError = Symbol('kDestroyOnSyncError');
101101102102// Collect all negative (error) ZLIB codes and Z_NEED_DICT
103-const ZLIB_FAILURES = new SafeSet([
104- ...ArrayPrototypeFilter(
105-ArrayPrototypeMap(
106-ObjectEntries(internalBinding('constants').zlib),
107-({ 0: code, 1: value }) => (value < 0 ? code : null),
108-),
109-Boolean,
103+const ZLIB_FAILURES = new SafeSet(
104+ArrayPrototypeFilter(
105+ObjectKeys(zlib),
106+(code) => code === 'Z_NEED_DICT' || zlib[code] < 0,
110107),
111-'Z_NEED_DICT',
112-]);
108+);
113109114110/**
115111 * @param {Error|null} cause
116112 * @returns {Error|null}
117113 */
118114function handleKnownInternalErrors(cause) {
115+const causeCode = cause?.code;
119116switch (true) {
120-case cause?.code === 'ERR_STREAM_PREMATURE_CLOSE': {
117+case causeCode === 'ERR_STREAM_PREMATURE_CLOSE': {
121118return new AbortError(undefined, { cause });
122119}
123-case ZLIB_FAILURES.has(cause?.code):
120+case ZLIB_FAILURES.has(causeCode):
124121// Brotli decoder error codes are formatted as 'ERR_' +
125122// BrotliDecoderErrorString(), where the latter returns strings like
126123// '_ERROR_FORMAT_...', '_ERROR_ALLOC_...', '_ERROR_UNREACHABLE', etc.
127124// The resulting JS error codes all start with 'ERR__ERROR_'.
128125// Falls through
129-case cause?.code != null &&
130-StringPrototypeStartsWith(cause.code, 'ERR__ERROR_'): {
126+case causeCode != null &&
127+StringPrototypeStartsWith(causeCode, 'ERR__ERROR_'): {
131128// eslint-disable-next-line no-restricted-syntax
132129const error = new TypeError(undefined, { cause });
133-error.code = cause.code;
130+setOwnProperty(error, 'code', causeCode);
134131return error;
135132}
136133default:
@@ -189,8 +186,7 @@ function newWritableStreamFromStreamWritable(streamWritable, options = kEmptyObj
189186let closed;
190187191188function onDrain() {
192-if (backpressurePromise !== undefined)
193-backpressurePromise.resolve();
189+backpressurePromise?.resolve();
194190}
195191196192const cleanup = eos(streamWritable, (error) => {
@@ -201,8 +197,7 @@ function newWritableStreamFromStreamWritable(streamWritable, options = kEmptyObj
201197// that happen to emit an error event again after finished is called.
202198streamWritable.on('error', () => {});
203199if (error != null) {
204-if (backpressurePromise !== undefined)
205-backpressurePromise.reject(error);
200+backpressurePromise?.reject(error);
206201// If closed is not undefined, the error is happening
207202// after the WritableStream close has already started.
208203// We need to reject it here.
@@ -329,10 +324,10 @@ function newStreamWritableFromWritableStream(writableStream, options = kEmptyObj
329324writer.ready,
330325() => {
331326return PromisePrototypeThen(
332-SafePromiseAll(
327+SafePromiseAllReturnVoid(
333328chunks,
334329(data) => writer.write(data.chunk)),
335-() => done(),
330+done,
336331done);
337332},
338333done);
@@ -790,10 +785,10 @@ function newStreamDuplexFromReadableWritablePair(pair = kEmptyObject, options =
790785writer.ready,
791786() => {
792787return PromisePrototypeThen(
793-SafePromiseAll(
788+SafePromiseAllReturnVoid(
794789chunks,
795790(data) => writer.write(data.chunk)),
796-() => done(),
791+done,
797792done);
798793},
799794done);
@@ -895,7 +890,7 @@ function newStreamDuplexFromReadableWritablePair(pair = kEmptyObject, options =
895890896891if (!writableClosed || !readableClosed) {
897892PromisePrototypeThen(
898-SafePromiseAll([
893+SafePromiseAllReturnVoid([
899894closeWriter(),
900895closeReader(),
901896]),