Note: v3 beta is now available on npm under the next tag
v3 Roadmap
General stuff
BREAKING: Drop support for Node.js 4 and Node.js 6 (Update dependencies for node-fetch v3.x #489 , Drop support for Node.js 4.x #624 )
Update devDependencies (related to Update dependencies for node-fetch v3.x #489 )
When users clone(), automatically create streams with custom highWaterMark (When users clone(), automatically create streams with custom highWaterMark #386 , PR open: Allow setting custom highWaterMark via node-fetch options (#386) #671 )
Bundle TypeScript types (Support for TypeScript without need of installing @types/node-fetch package) (feat: Migrated types #669 )
Replace Rollup with Microbundle (Plans to drop babel in v3 #643 )
Introduce linting to the project (Introduce linting to the project #303 )
Simplify Travis CI build matrix (related to Too big of a Travis CI matrix #431 ) - Dropping support for Node.js 4 & 6 will help
Response.statusText should not default (Response.statusText should not default #578 )
Use w3c defined message for AbortError (Use w3c defined message for AbortError #657 )
URL is not encoded as UTF-8 (URL is not encoded as UTF-8 #245 )
Deprecate timeout in favor of AbortController (Should we deprecate timeout in favor of AbortController? #523 )
Data URI support (feat: Data URI support #659 )
Drop the optional dependency on encoding and move charset detection into a separate package. (In progress: Richienb/fetch-charset-detection (PR Open: refactor: Replace encoding with fetch-charset-detection. #694 ))
Drop existing blob implementation code and use fetch-blob as dependency instead (v3 Roadmap #668 (comment) )
Fix stream piping (missing response stream error events #309 , PR open: Fix stream piping #670 )
Fix stream resolving (Response promise resolves before response closes #642 , Response.json() never resolves #665 )
Do not use constructor.name to check object (Do not use constructor.name to check object #667 , PR open: fix: Better object checks #673 )
Properly forward request errors while piping response stream
Convert Content-Encoding to lowercase (When server's Content-Encoding: GZip, response won't decompress #661 , PR open: fix: Convert Content-Encoding to lowercase #672 )
More tests for data URI (v3 Roadmap #668 (comment) )
Drop credentials before redirection (When redirecting to a different host, strip Authorization header #274 )
Modernise the code behind FetchError and AbortError (v3 Roadmap #668 (comment) )
Propagate size and timeout to cloned response (Propagate size and timeout to cloned response #664 )
Replace the calls to url.parse and url.resolve with calls to new URL to use the new UTF-8 awareness and remove the utf8 package.
Document types of fetch errors more thoroughly (Document types of fetch errors more thoroughly #549 )
Should update host if there's a redirection (Redirect-following error (HTTP -> HTTPS + naked domain -> www subdomain) #570 , PR Open: fix: Update host if there's a redirection #596 )
High priority doesn't correctly handle multiple content-type values (doesn't correctly handle multiple content-type values #783 )
Additional:
Other
cc @bitinn @jimmywarting @TimothyGu @jkantr @gr2m @Richienb
Note: v3 beta is now available on npm under the
nexttagv3 Roadmap
General stuff
@types/node-fetchpackage) (feat: Migrated types #669)encodingwithfetch-charset-detection. #694))Content-Encodingto lowercase (When server's Content-Encoding: GZip, response won't decompress #661, PR open: fix: Convert Content-Encoding to lowercase #672)url.parseandurl.resolvewith calls tonew URLto use the new UTF-8 awareness and remove theutf8package.url.parse(refactor: Replaceurl.parsewithnew URL()#701)url.resolve(e3cd4d2)content-typevalues (doesn't correctly handle multiplecontent-typevalues #783)Additional:
WebStream API support (WebStream API support #387)- needs more discussion and standard.Support trailers (Support trailers #330)- trailer support has been removed (Consider removing trailers API whatwg/fetch#772).Caching (Offer caching #68)- would likely require opinionated implementation.Cookies (cookie jar #94)- would likely require opinionated implementation.Other
Create a final v2 release before releasing v3cc @bitinn @jimmywarting @TimothyGu @jkantr @gr2m @Richienb