From 6ccf1924cccf36219b035f25075a58730007910b Mon Sep 17 00:00:00 2001 From: Deokjin Kim Date: Mon, 16 Jan 2023 07:10:42 +0900 Subject: [PATCH] lib: use kEmptyObject and update JSDoc in webstreams Use kEmptyObject as default value of strategy. Plus, make reason and chunk as optional. And refactor to use validateBuffer. Refs: https://github.com/nodejs/node/blob/main/doc/api/webstreams.md#transformstreamdefaultcontrollerenqueuechunk Refs: https://github.com/nodejs/node/blob/main/doc/api/webstreams.md#transformstreamdefaultcontrollererrorreason Refs: https://github.com/nodejs/node/blob/main/doc/api/webstreams.md#writablestreamdefaultwriterabortreason Refs: https://github.com/nodejs/node/blob/main/doc/api/webstreams.md#writablestreamdefaultwriterwritechunk PR-URL: https://github.com/nodejs/node/pull/46183 Reviewed-By: Antoine du Hamel Reviewed-By: Yagiz Nizipli Reviewed-By: James M Snell Reviewed-By: Minwoo Jung --- lib/internal/webstreams/readablestream.js | 11 +---------- lib/internal/webstreams/transformstream.js | 9 +++++---- lib/internal/webstreams/writablestream.js | 7 ++++--- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/lib/internal/webstreams/readablestream.js b/lib/internal/webstreams/readablestream.js index 1f1622551c9559..e94f8fbcf156c4 100644 --- a/lib/internal/webstreams/readablestream.js +++ b/lib/internal/webstreams/readablestream.js @@ -1132,16 +1132,7 @@ class ReadableByteStreamController { enqueue(chunk) { if (!isReadableByteStreamController(this)) throw new ERR_INVALID_THIS('ReadableByteStreamController'); - if (!isArrayBufferView(chunk)) { - throw new ERR_INVALID_ARG_TYPE( - 'chunk', - [ - 'Buffer', - 'TypedArray', - 'DataView', - ], - chunk); - } + validateBuffer(chunk); const chunkByteLength = ArrayBufferViewGetByteLength(chunk); const chunkBuffer = ArrayBufferViewGetBuffer(chunk); const chunkBufferByteLength = ArrayBufferPrototypeGetByteLength(chunkBuffer); diff --git a/lib/internal/webstreams/transformstream.js b/lib/internal/webstreams/transformstream.js index 38342b41804385..6e119bde63bb2f 100644 --- a/lib/internal/webstreams/transformstream.js +++ b/lib/internal/webstreams/transformstream.js @@ -26,6 +26,7 @@ const { const { createDeferredPromise, customInspectSymbol: kInspect, + kEmptyObject, kEnumerableProperty, } = require('internal/util'); @@ -117,8 +118,8 @@ class TransformStream { */ constructor( transformer = null, - writableStrategy = {}, - readableStrategy = {}) { + writableStrategy = kEmptyObject, + readableStrategy = kEmptyObject) { const readableType = transformer?.readableType; const writableType = transformer?.writableType; const start = transformer?.start; @@ -292,7 +293,7 @@ class TransformStreamDefaultController { } /** - * @param {any} chunk + * @param {any} [chunk] */ enqueue(chunk = undefined) { if (!isTransformStreamDefaultController(this)) @@ -301,7 +302,7 @@ class TransformStreamDefaultController { } /** - * @param {any} reason + * @param {any} [reason] */ error(reason = undefined) { if (!isTransformStreamDefaultController(this)) diff --git a/lib/internal/webstreams/writablestream.js b/lib/internal/webstreams/writablestream.js index b9b1dfedd04659..3d5851753057a9 100644 --- a/lib/internal/webstreams/writablestream.js +++ b/lib/internal/webstreams/writablestream.js @@ -33,6 +33,7 @@ const { const { createDeferredPromise, customInspectSymbol: kInspect, + kEmptyObject, kEnumerableProperty, SideEffectFreeRegExpPrototypeSymbolReplace, } = require('internal/util'); @@ -148,7 +149,7 @@ class WritableStream { * @param {UnderlyingSink} [sink] * @param {QueuingStrategy} [strategy] */ - constructor(sink = null, strategy = {}) { + constructor(sink = null, strategy = kEmptyObject) { const type = sink?.type; if (type !== undefined) throw new ERR_INVALID_ARG_VALUE.RangeError('type', type); @@ -217,7 +218,7 @@ class WritableStream { } /** - * @param {any} reason + * @param {any} [reason] * @returns {Promise} */ abort(reason = undefined) { @@ -475,7 +476,7 @@ class WritableStreamDefaultWriter { } /** - * @param {any} chunk + * @param {any} [chunk] * @returns {Promise} */ write(chunk = undefined) {