diff options
Diffstat (limited to 'op_crates/fetch/11_streams.js')
-rw-r--r-- | op_crates/fetch/11_streams.js | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/op_crates/fetch/11_streams.js b/op_crates/fetch/11_streams.js index 827f8c232..b7a9acca0 100644 --- a/op_crates/fetch/11_streams.js +++ b/op_crates/fetch/11_streams.js @@ -3136,21 +3136,35 @@ * @returns {ReadableStream<T>} */ pipeThrough( - { readable, writable }, + transform, { preventClose, preventAbort, preventCancel, signal } = {}, ) { + if (!isReadableStream(this)) { + throw new TypeError("this must be a ReadableStream"); + } + const { readable } = transform; + if (!isReadableStream(readable)) { + throw new TypeError("readable must be a ReadableStream"); + } + const { writable } = transform; + if (!isWritableStream(writable)) { + throw new TypeError("writable must be a WritableStream"); + } if (isReadableStreamLocked(this)) { throw new TypeError("ReadableStream is already locked."); } + if (signal !== undefined && !(signal instanceof AbortSignal)) { + throw new TypeError("signal must be an AbortSignal"); + } if (isWritableStreamLocked(writable)) { throw new TypeError("Target WritableStream is already locked."); } const promise = readableStreamPipeTo( this, writable, - preventClose, - preventAbort, - preventCancel, + Boolean(preventClose), + Boolean(preventAbort), + Boolean(preventCancel), signal, ); setPromiseIsHandledToTrue(promise); |