Skip to content

Releases: sindresorhus/got

v10.2.0

23 Dec 21:07
Compare
Choose a tag to compare
  • Soft-deprecate electron.net support (#995) b2f8ace
    • See #899 (comment). When the support is removed, you'll still be able to use Got in the Electron main process and in the renderer process through the electron.remote module or if you use Node.js shims.
  • Do not throw if hostname is not present dc53747
  • Fix unhandled Premature close errors fa60b5f

v10.1.0...v10.2.0

v10.1.0

19 Dec 12:31
Compare
Choose a tag to compare

Enhancements

Fixes

  • Fix content-length header not being set when using custom content-type 3149340
  • Emit timeout errors as soon as possible 912c2e5 7bf92f4

v10.0.4...v10.1.0

v10.0.4

12 Dec 13:15
Compare
Choose a tag to compare

v10.0.3...v10.0.4

v10.0.3

09 Dec 18:50
Compare
Choose a tag to compare
  • Fix the responseType option (071bf5e)
  • Fix unhandled Premature close and Request timed out errors (7b2ccb0)
  • Make options.path backwards-compatible (b3f1ac9)

v10.0.2

07 Dec 18:50
Compare
Choose a tag to compare
  • Fix TypeScript type problem with URL and URLSearchParams globals (#969) 2d5e28d
  • Fix got.mergeOptions(...) TypeScript type (#953) b962d08
  • Fix unhandled timeout errors when connection drops 5a8f461

v10.0.1...v10.0.2

v10.0.1

01 Dec 16:50
Compare
Choose a tag to compare
  • Fix using the json option with got.stream.post 2ec5c4d

v10.0.0...v10.0.1

v10.0.0

01 Dec 08:09
Compare
Choose a tag to compare

We're excited to announce Got 10! 🎉 This release has been in the works for almost a year and has been a major undertaking. Got was fully rewritten in TypeScript, which helped us catch many bugs and will give us more confidence in the codebase going forward. Got is now faster and much more stable. We also fixed a huge amount of bugs. Big thanks to everyone that helped make this release possible. 🙌


If you find Got useful, you might want to sponsor the Got maintainers.

Note: Some HTTP agents like https-proxy-agent and agentkeepalive are not compatible with Node.js 10 and hence not compatible with Got as Got takes advantage of some Node.js 10-only APIs.

Breaking

  • Require Node.js 10 633651f
    • Why: This is so that we can use stream.pipeline for more reliable stream handling. Node.js 8 will be out of LTS at the end of this month anyway.
  • Remove support for protocol-less URLs in the url argument 92bc808
    • Why: To reduce ambiguity. It was not clear from just reading the code what it would default to.
    • Migrate:
- got('sindresorhus.com');
+ got('https://sindresorhus.com');
  • Rename the query option to searchParams and make it stricter b223663 5376216 518f0f5
    • Why: To get closer to the window.fetch naming in the browser.
    • Migrate:
- got(…, {query: …});
+ got(…, {searchParams: …});
  • Replace the baseUrl option with prefixUrl (#829) 0d534ed
    • Note: We also made it stricter to reduce ambiguity. The Got url argument now cannot be prefixed with a slash when this option is used.
    • Why: We renamed it to make it clear that it doesn't do any URL resolution.
    • Migrate:
- got('/foo', {baseUrl: 'https://x.com'});
+ got('foo', {prefixUrl: 'https://x.com'});
  • Change the json option to accept an object instead of a boolean and to only be responsible for the request, not the response (#704) a6a7d5a
    • Note: You now set the request body in this option instead of the body option when you want to send JSON. This option also no longer sets the response type to JSON. You either call the .json() method or specify the responseType option for that.
    • Why: Many people were confused how {json: true} worked and they also complained that they could not set the request/response type individually.
    • Migrate:
- got(url, {body: {x: true}, json: true});
+ got.post(url, {json: {x: true}}).json();
  • Use the responseType option instead of encoding to get a Buffer (#940) 6cc3d9f
    • Why: Previously, you would pass {encoding: null} to get a Buffer, but this was confusing. You now use {responseType: 'buffer'} instead.
    • Tip: You can also use got(…).buffer();.
    • Migrate:
- got(…, {encoding: null});
+ got(…, {responseType: 'buffer'});
  • Don't infer POST automatically when specifying body (#756) e367bdb
    • Why: We're trying to reduce the amount of magic behavior.
    • Migrate:
- got(…, {body: 'foo'});
+ got.post(…, {body: 'foo'});
  • The retries.retry option was split into retries.limit and retries.calculateDelay b15ce1d
    • Migrate:
 got(…, {
 	retry: {
-		retries: 2
+		limit: 2
 	}
 });
 got(…, {
 	retry: {
-		retries: iteration => iteration < 2
+		calculateDelay: ({attemptCount}) => attemptCount < 2
 	}
 });
 got(…, {
 	headers: {
-		'user-agent': null
+		'user-agent': undefined
 	}
 });
  • Rename the Promise API property .fromCache to .isFromCache (#768) b5e443b
  • Rename the stream option to isStream 518f0f5
    • Why: To make it clearer that it's a boolean and that it doesn't expect a stream to be passed in.
    • Migrate:
- got(…, {stream: true});
+ got(…, {isStream: true});
  • Don't include the Got version in the default user-agent header (#911) 95bed1e
    • got/9.6.0 (https://github.com/sindresorhus/got)got (https://github.com/sindresorhus/got)
    • Why: Importing package.json to get the version caused a lot of problems. And you should ideally set your own user-agent header anyway.
  • Remove got.create() 518f0f5
    • You can achieve the same thing with got.extend() now.
  • Remove got.mergeInstances() 518f0f5
    • Use gotInstance.extend(...gotInstances) instead.
  • Move top-level error properties into an .options and .response property (#773) 6eaa81b
    • Migrate:
- error.gotOptions
+ error.options

- error.headers
+ error.response.headers

- error.statusCode
+ error.response.statusCode

- error.statusMessage
+ error.response.statusMessage

- error.body
+ error.response.body

- error.redirectUrls
+ error.response.redirectUrls

- error.host
+ error.options.host

- error.hostname
+ error.options.hostname

- error.method
+ error.options.method

- error.protocol
+ error.options.protocol

- error.url
+ error.options.url

- error.path
+ error.options.path
  • Custom instance creation was simplified (#707) 8eaef94
    • Note: got.mergeInstances(...instances) is deprecated. Use instanceA.extend(instanceB) instead.
    • Migrate:
# Merging instances
- got.mergeInstances(instanceA, instanceB, instanceC, …);
+ instanceA.extend(instanceB, instanceC, …);

# Merging options
- instanceA.extend(optionsB).extend(optionsC).extend(…);
+ instanceA.extend(optionsB, optionsC, …);

# Merging instances and options
- got.mergeInstances(instanceA.extend(optionsB), instanceC);
+ instanceA.extend(optionsB, instanceC, …);

# Extending handlers
- got.mergeInstances(instanceA, got.create({handler: handlerB}));
+ instanceA.extend({handlers: [handlerB]});

Enhancements

Fixes

  • Fix parsing response when using afterResponse hook (#775) e2054cd
  • Fix port not being reset on redirect (#729) ada5861
  • Fix the retry functionality (#787) 0501e00
  • Fix default retry option value when specifying a number (#809) 9c04a7c
  • Correctly handle promise- and stream-specific errors in the beforeError hook 134c9b7
  • Don't throw on early lookups 4faf5c7
  • Fix Node.js 13 compatibility (#915) b0dfc95
  • Fix memory leak when using cache feature (#792) 518f0f5
  • Don't throw on 204 No Content when parsing response (#925) 518f0f5
  • When redirect fails, don't retry from scratch (#930) 518f0f5
  • Retrying inside afterResponse hook should trigger beforeRetry hook (#918) 518f0f5
  • Fix a bug that sometimes caused the Node.js process to hang 518f0f5
  • Fix a bug where cookies weren't reset on redirect between two different sites 518f0f5
  • Make the progress events not be based on internal Node.js properties cd11a50

Docs

  • Clarify retry behavior 5e6782a
  • Clarify prefixUrl behavior (#943) f008bc9
  • Document that retry option doesn't work with streams 9088866
  • Encourage using Stream.pipeline() when using the stream API 06afb27
  • Add instructions for global-agent (#822) ca8c560
  • Mention the TimeoutError.timings property 8fa18f4
  • Mention how to abort the request using hooks 96ea75f

All commits

v9.6.0...v10.0.0

v10.0.0-beta.2

25 Nov 04:59
Compare
Choose a tag to compare
v10.0.0-beta.2 Pre-release
Pre-release

While this is an beta release, the code is well-tested and fairly stable. We encourage you to test it out and report any issues.

$ npm install got@10.0.0-beta.2

Make sure you also read the alpha.1, alpha.2, alpha.3, and beta.1 release notes.

Changes in beta 2:

Breaking

  • Use the responseType option instead of encoding to get a Buffer (#940) 6cc3d9f
    Previously, you would pass {encoding: null} to get a Buffer, but this was confusing. You now use {responseType: 'buffer'} instead.

Enhancements

  • Preserve stack trace when wrapping errors (#935) 8874a45
  • Make TypeScript types conforms to strict mode (#928) c537dee

Fixes

  • Make the progress events not be based on internal Node.js properties cd11a50

v10.0.0-beta.1...v10.0.0-beta.2

v10.0.0-beta.1

18 Nov 08:54
Compare
Choose a tag to compare
v10.0.0-beta.1 Pre-release
Pre-release

While this is an beta release, the code is well-tested and fairly stable. We encourage you to test it out and report any issues.

$ npm install got@10.0.0-beta.1

Make sure you also read the alpha.1, alpha.2, and alpha.3 release notes.

Changes in beta 1:

Breaking

  • Remove the query option in favor of the searchParams option (It was previously deprecated) 518f0f5
  • Rename the stream option to isStream 518f0f5
  • Don't include the Got version in the default user-agent header (#911) 95bed1e
    • got/9.6.0 (https://github.com/sindresorhus/got)got (https://github.com/sindresorhus/got)
    • Why: Importing package.json to get the version caused a lot of problems.
  • Remove got.create() 518f0f5
    • You can achieve the same thing with got.extend() now.
  • Remove got.mergeInstances() 518f0f5
    • Use gotInstance.extend(...gotInstances) instead.
  • Use undefined instead of null to omit a header (https://github.com/sindresorhus/got#headers) 518f0f5

Enhancements

Fixes

  • Fix Node.js 13 compatibility (#915) b0dfc95
  • Fix memory leak when using cache feature (#792) 518f0f5
  • Don't throw on 204 No Content when parsing response (#925) 518f0f5
  • When redirect fails, don't retry from scratch (#930) 518f0f5
  • Retrying inside afterResponse hook should trigger beforeRetry hook (#918) 518f0f5
  • Fix a bug that sometimes caused the Node process to hang 518f0f5
  • Fix a bug where cookies weren't reset on redirect between two different sites 518f0f5

Docs

  • Clarify retry behavior 5e6782a
  • Mention how to abort the request using hooks 96ea75f

v10.0.0-alpha.3...v10.0.0-beta.1

v10.0.0-alpha.3

01 Nov 19:59
Compare
Choose a tag to compare
v10.0.0-alpha.3 Pre-release
Pre-release

While this is an alpha release, the code is well-tested and fairly stable. We encourage you to test it out and report any issues.

$ npm install got@10.0.0-alpha.3.2

Note the .2 at the end

Make sure you also read the alpha.1 and alpha.2 release notes.

Changes in alpha.3:

Breaking

  • Require Node.js 10 633651f
    This is so that we can use stream.pipeline for more reliable stream handling. Node.js 8 will be out of LTS in a month anyway.

Enhancements

Fixes

  • Fix Stream.pipeline(...) usage and properly detect aborted requests (#908) abd95a3
  • Fix TypeScript definition for projects not using the DOM types (#893) 3a0e4f4

v10.0.0-alpha.2...v10.0.0-alpha.3