(Note: 1.x
will only have backported bugfix releases beyond 1.7.0
)
- Enhance:
FetchError
now gives a correct trace stack (backport from v2.x relese).
- Fix: when using node-fetch with test framework such as
jest
,instanceof
check could fail inHeaders
class. This is causing some header values, such asset-cookie
, to be dropped incorrectly.
- Fix: close local test server properly under Node 8.
- Fix: revert change in
v1.6.2
where 204 no-content response is handled with a special case, this conflicts with browser Fetch implementation (as browsers always throw when res.json() parses an empty string). Since this is an operational error, it's wrapped in aFetchError
for easier error handling. - Fix: move code coverage tool to codecov platform and update travis config
- Enhance: error handling document to explain
FetchError
design - Fix: support
form-data
2.x releases (requiresform-data
>= 2.1.0)
- Enhance: minor document update
- Fix: response.json() returns empty object on 204 no-content response instead of throwing a syntax error
- Fix: if
res.body
is a non-stream non-formdata object, we will callbody.toString
and send it as a string - Fix:
counter
value is incorrectly set tofollow
value when wrapping Request instance - Fix: documentation update
- Enhance: added
res.buffer()
api for convenience, it returns body as a Node.js buffer - Enhance: better old server support by handling raw deflate response
- Enhance: skip encoding detection for non-HTML/XML response
- Enhance: minor document update
- Fix: HEAD request doesn't need decompression, as body is empty
- Fix:
req.body
now accepts a Node.js buffer
- Fix: handle 204 and 304 responses when body is empty but content-encoding is gzip/deflate
- Fix: allow resolving response and cloned response in any order
- Fix: avoid setting
content-length
whenform-data
body use streams - Fix: send DELETE request with content-length when body is present
- Fix: allow any url when calling new Request, but still reject non-http(s) url in fetch
- Fix: allow node.js core to handle keep-alive connection pool when passing a custom agent
- Fix: redirect mode
manual
should work even when there is no redirection or broken redirection
- Enhance: rejected promise now use custom
Error
(thx to @pekeler) - Enhance:
FetchError
containserr.type
anderr.code
, allows for better error handling (thx to @pekeler) - Enhance: basic support for redirect mode
manual
anderror
, allows for location header extraction (thx to @jimmywarting for the initial PR)
- Fix: wrapping Request instance with FormData body again should preserve the body as-is
- Enhance: Request and Response now have
clone
method (thx to @kirill-konshin for the initial PR) - Enhance: Request and Response now have proper string and buffer body support (thx to @kirill-konshin)
- Enhance: Body constructor has been refactored out (thx to @kirill-konshin)
- Enhance: Headers now has
forEach
method (thx to @tricoder42) - Enhance: back to 100% code coverage
- Fix: better form-data support (thx to @item4)
- Fix: better character encoding detection under chunked encoding (thx to @dsuket for the initial PR)
- Fix: make sure
Content-Length
header is set when body is string for POST/PUT/PATCH requests - Fix: handle body stream error, for cases such as incorrect
Content-Encoding
header - Fix: when following certain redirects, use
GET
on subsequent request per Fetch Spec - Fix:
Request
andResponse
constructors now parse headers input usingHeaders
- Enhance: allow auto detect of form-data input (no
FormData
spec on node.js, this is form-data specific feature)
- Enhance: allow custom host header to be set (server-side only feature, as it's a forbidden header on client-side)
- Enhance: now
fetch.Request
is exposed as well
- Enhance:
Headers
now normalizedNumber
value toString
, prevent common mistakes
- Enhance: now fetch.Headers and fetch.Response are exposed, making testing easier
- Fix:
Headers
should only supportString
andArray
properties, and ignore others
- Enhance: now req.headers accept both plain object and
Headers
instance
- Enhance: timeout now also applies to response body (in case of slow response)
- Fix: timeout is now cleared properly when fetch is done/has failed
- Fix: less greedy content-type charset matching
- Fix: when
follow = 0
, fetch should not follow redirect - Enhance: update tests for better coverage
- Enhance: code formatting
- Enhance: clean up doc
- Enhance: test iojs support
- Enhance: timeout attached to socket event only fire once per redirect
- Fix: response size limit should reject large chunk
- Enhance: added character encoding detection for xml, such as rss/atom feed (encoding in DTD)
- Fix: added res.ok per spec change
- Enhance: better test coverage and doc
- Major: initial public release