Update dependency got to v10
Created by: renovate[bot]
This PR contains the following updates:
Package | Type | Update | New value | References | Sourcegraph |
---|---|---|---|---|---|
got | dependencies | major | ^10.0.1 | source |
Release Notes
sindresorhus/got
v10.0.1
- Fix using the
json
option withgot.stream.post
2ec5c4d
v10.0.0
We're excited to announce Got 10!
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 usestream.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
argument92bc808
- 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 tosearchParams
and make it stricterb223663
5376216
518f0f5
- Why: To get closer to thewindow.fetch
naming in the browser. - Migrate:
- got(…, {query: …});
+ got(…, {searchParams: …});
- Replace the
baseUrl
option withprefixUrl
(#829)0d534ed
- Note: We also made it stricter to reduce ambiguity. The Goturl
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 thebody
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 theresponseType
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 ofencoding
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 usegot(…).buffer();
. - Migrate:
- got(…, {encoding: null});
+ got(…, {responseType: 'buffer'});
- Don't infer
POST
automatically when specifyingbody
(#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 intoretries.limit
andretries.calculateDelay
b15ce1d
- Migrate:
got(…, {
retry: {
- retries: 2
+ limit: 2
}
});
got(…, {
retry: {
- retries: iteration => iteration < 2
+ calculateDelay: ({attemptCount}) => attemptCount < 2
}
});
- Use
undefined
instead ofnull
to omit a header (https://github.com/sindresorhus/got#headers)518f0f5
- Why: We're trying to reduce the use ofnull
. - Migrate:
got(…, {
headers: {
- 'user-agent': null
+ 'user-agent': undefined
}
});
- Rename the Promise API property
.fromCache
to.isFromCache
(#768)b5e443b
- Rename the
stream
option toisStream
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 ownuser-agent
header anyway. - Remove
got.create()
518f0f5
- You can achieve the same thing withgot.extend()
now. - Remove
got.mergeInstances()
518f0f5
- UsegotInstance.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. UseinstanceA.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
- Got has been rewritten in TypeScript.
- Why: This means we can provide our own type definitions and we can be more confident when working on the Got codebase and produce less bugs.
Huge thanks to @pmmmwh, @LinusU, @vladfrangu, @mastermatt, and everyone else that helped us with this rewrite.
🙌 - Add support for Brotli (Node.js 12 and later) (#706)
d5d2e6f
- Add opt-in DNS cache (#731)
cd12351
- Add
context
option for storing custom metadata across request and hooks (#777)3bb5aa7
- Add option to ignore invalid cookies (#826)
e9c01e0
- Add
maxRedirects
option (#914)0c505b0
- Allow method rewriting on redirects (#913)
b7ead5f
- Add
methodRewriting
option (#942)b82358f
- Add ability to use something other than
tough-cookie
for handling cookies (#882)518f0f5
- Preserve stack trace when wrapping errors (#935)
8874a45
- Proxy headers from server request to Got (#772)
00e5fd5
- Pass the response as the second argument to the
beforeRedirect
hook (#812)3557896
- Throw on canceled request with incomplete response (#767)
92b1005
- Add
.isFromCache
property to the stream API (#768)b5e443b
- The
timeout
option can now be modified in hooksd520a3a
- The
prefixUrl
option can now be modified in hooks (#867)518f0f5
- Make
URLSearchParams
instances mergeable (#734)95c7c2c
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
hook134c9b7
- 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 triggerbeforeRetry
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
behavior5e6782a
- Clarify
prefixUrl
behavior (#943)f008bc9
- Document that
retry
option doesn't work with streams9088866
- Encourage using
Stream.pipeline()
when using the stream API06afb27
- Add instructions for
global-agent
(#822)ca8c560
- Mention the
TimeoutError.timings
property8fa18f4
- Mention how to abort the request using hooks
96ea75f
All commits
Renovate configuration
rebase!
".
-
If you want to rebase/retry this PR, check this box
Newsflash: Renovate has joined WhiteSource, and is now free for all use. Learn more or view updated terms and privacy policies.