diff --git a/.changeset/forty-points-drop.md b/.changeset/forty-points-drop.md new file mode 100644 index 0000000000..5254af8960 --- /dev/null +++ b/.changeset/forty-points-drop.md @@ -0,0 +1,5 @@ +--- +'@whatwg-node/fetch': patch +--- + +Fix destroy method for ReadableStream to Readable conversion diff --git a/.prettierignore b/.prettierignore index 53c37a1660..0d1baf3326 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1,2 @@ -dist \ No newline at end of file +dist +CHANGELOG.md \ No newline at end of file diff --git a/packages/fetch/dist/readableStreamToReadable.js b/packages/fetch/dist/readableStreamToReadable.js index cba6fb1629..805ed17895 100644 --- a/packages/fetch/dist/readableStreamToReadable.js +++ b/packages/fetch/dist/readableStreamToReadable.js @@ -1,20 +1,25 @@ const streams = require('stream'); module.exports = function readableStreamToReadable(readableStream) { - return streams.Readable.from({ - [Symbol.asyncIterator]() { - const reader = readableStream.getReader(); - return { - next() { - return reader.read(); - }, - async return() { + const reader = readableStream.getReader(); + return new streams.Readable({ + read() { + reader.read().then(({ done, value }) => { + if (done) { + this.push(null); + } else { + this.push(value); + } + }) + }, + async destroy() { + try { reader.cancel(); reader.releaseLock(); await readableStream.cancel(); - return { done: true }; - } + } catch (error) { + console.log(error); } } - }); + }) } \ No newline at end of file