diff --git a/package.json b/package.json index 7a6f2d3c6..4005d1300 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ "cacheable-request": "^12.0.1", "decompress-response": "^6.0.0", "form-data-encoder": "^4.0.2", - "get-stream": "^8.0.1", "http2-wrapper": "^2.2.1", "lowercase-keys": "^3.0.0", "p-cancelable": "^4.0.1", @@ -86,6 +85,7 @@ "express": "^4.19.2", "form-data": "^4.0.0", "formdata-node": "^6.0.3", + "get-stream": "^9.0.1", "nock": "^13.5.4", "node-fetch": "^3.3.2", "np": "^10.0.5", diff --git a/readme.md b/readme.md index ef510f16b..d20b987d4 100644 --- a/readme.md +++ b/readme.md @@ -374,7 +374,7 @@ By default, Got will retry on failure. To disable this option, set [`options.ret [Click here][InstallSizeOfTheDependencies] to see the install size of the Got dependencies. -[InstallSizeOfTheDependencies]: https://packagephobia.com/result?p=@sindresorhus/is@6.3.1,@szmarczak/http-timer@5.0.1,cacheable-lookup@7.0.0,cacheable-request@12.0.1,decompress-response@6.0.0,form-data-encoder@4.0.2,get-stream@8.0.1,http2-wrapper@2.2.1,lowercase-keys@3.0.0,p-cancelable@4.0.1,responselike@3.0.0,type-fest@4.19.0 +[InstallSizeOfTheDependencies]: https://packagephobia.com/result?p=@sindresorhus/is@7.0.0,@szmarczak/http-timer@5.0.1,cacheable-lookup@7.0.0,cacheable-request@12.0.1,decompress-response@6.0.0,form-data-encoder@4.0.2,http2-wrapper@2.2.1,lowercase-keys@3.0.0,p-cancelable@4.0.1,responselike@3.0.0,type-fest@4.19.0 ## Maintainers diff --git a/source/core/index.ts b/source/core/index.ts index 465553576..a864ef79a 100644 --- a/source/core/index.ts +++ b/source/core/index.ts @@ -11,8 +11,7 @@ import CacheableRequest, { type CacheableOptions, } from 'cacheable-request'; import decompressResponse from 'decompress-response'; -import is from '@sindresorhus/is'; -import {getStreamAsBuffer} from 'get-stream'; +import is, {isBuffer} from '@sindresorhus/is'; import {FormDataEncoder, isFormData as isFormDataLike} from 'form-data-encoder'; import type ResponseLike from 'responselike'; import getBodySize from './utils/get-body-size.js'; @@ -877,11 +876,8 @@ export default class Request extends Duplex implements RequestEvents { try { // Errors are emitted via the `error` event - const rawBody = await getStreamAsBuffer(from); - - // TODO: Switch to this: - // let rawBody = await from.toArray(); - // rawBody = Buffer.concat(rawBody); + const fromArray = await from.toArray(); + const rawBody = isBuffer(fromArray.at(0)) ? Buffer.concat(fromArray) : Buffer.from(fromArray.join('')); // On retry Request is destroyed with no error, therefore the above will successfully resolve. // So in order to check if this was really successfull, we need to check if it has been properly ended.