Commit Graph

105 Commits

Author SHA1 Message Date
Timothy Gu 11a9481405 request: overwrite Content-Length if possible
Also reorganize header normalization
2017-01-29 10:06:54 -08:00
Timothy Gu ac8ddaccb8 Improve Headers constructor argument processing 2017-01-29 08:58:16 -08:00
Timothy Gu e9db869523 Remove FOLLOW_SPEC option; make it the default behavior (#225)
* Remove !FOLLOW_SPEC mode

* Update UPGRADE-GUIDE

* Add CHANGELOG entry
2017-01-23 07:54:28 -08:00
Timothy Gu 502b604208 Fix Headers iterable initializer handling 2017-01-14 21:22:23 -08:00
Timothy Gu f198f93767 test: remove fallbacks for Node.js 0.10 2017-01-14 20:56:26 -08:00
Timothy Gu 151de2bdfb Use ES2015 export syntax (#212)
* Implement Rollup's external module check

* Use ES2015 export syntax

More friendly to ES2015 environments.
2017-01-14 20:50:10 -08:00
Nathan Rajlich fa22529128 proper stack first line for FetchError instances (#215)
The `.stack` property gets cached in the `captureStackTrace()` call, so
whatever is set as the `name` and `message` at that time will be used
for the first line of the stack trace.

Before this patch, FetchError's stack would just say "Error" as the
first line. Now they correctly display the "${name}: ${message}" of the
error instances.

Test case included.

Signed-off-by: Timothy Gu <[email protected]>
2016-12-14 15:41:35 -08:00
Timothy Gu 0f7e6c15d3 Back to 100% 2016-12-05 21:20:00 -08:00
Timothy Gu 90d3bc4436 Set content-length for buffer bodies 2016-12-05 20:30:00 -08:00
Timothy Gu a604069860 More exact content-type and content-length
Set content-type of requests with body being objects to text/plain
2016-12-05 20:27:08 -08:00
Timothy Gu 385ca6b2b0 To 100% branches coverage 2016-12-05 19:48:59 -08:00
Timothy Gu 4d944365df Fix tests added in the last commit 2016-12-05 15:21:19 -08:00
Timothy Gu e7a13a5314 Add support for blobs 2016-12-05 15:06:22 -08:00
Timothy Gu cc4ace1778 Make body default to null in Request
Fixes #208.
2016-12-04 13:16:03 -08:00
Timothy Gu 3d676235a8 Throw when a GET/HEAD Request is created with body
As mandated by the spec
2016-12-04 13:15:03 -08:00
Timothy Gu d3071fa46a Revert "Return empty .json() object on 204. Fix #165. (#166)" (#201)
This reverts commit 95b58936b8.

Fixes #165.
2016-11-26 09:07:12 -08:00
Timothy Gu 25ff99677d Improve Headers' iteration support
Class strings, spec-compliant forEach, etc.
2016-11-23 15:06:30 -08:00
Timothy Gu a355664e64 Update packages 2016-11-23 11:30:01 -08:00
Timothy Gu 5fe80dba06 Remove dependency on babel-polyfill
This way the tests can better emulate the real Node.js environment.
2016-11-05 10:26:30 -07:00
Timothy Gu 76cb57cace Support WHATWG URL objects
Fixes #175.
2016-10-15 10:19:52 -07:00
Timothy Gu b092a8ed12 Add test for constructing Request with parsed URL object 2016-10-15 10:19:52 -07:00
Timothy Gu d3b4161d7c Add a new res.textConverted() and always use UTF-8 for res.text()
Also uses iconv-lite directly instead of using the "encoding" package.

Fixes #184.
2016-10-15 09:41:52 -07:00
Timothy Gu 2a7ef63bc4 Add FOLLOW_SPEC mode 2016-10-15 08:21:51 -07:00
Timothy Gu 2cafdcb5e4 Validate headers 2016-10-15 08:21:51 -07:00
Timothy Gu fba873d3fe Make sure to coerce header values to string 2016-10-15 08:21:51 -07:00
Timothy Gu 82c1e78184 Allow constructing Headers with an Array 2016-10-15 08:21:51 -07:00
Timothy Gu 67326e3873 Condense class toString tests 2016-10-12 20:51:19 -07:00
Timothy Gu 4d81cb4877 Test @@toStringTag getter of all classes 2016-10-12 17:29:33 -07:00
Timothy Gu 0f65af3fd8 Split Headers iterable test into four 2016-10-12 17:29:33 -07:00
Timothy Gu c3a121a360 Add support for Body#arrayBuffer 2016-10-12 17:29:33 -07:00
Timothy Gu 64e239b092 Improve Body spec compliance when body is null 2016-10-12 17:29:33 -07:00
Timothy Gu a0be6aa34a Simplify Request constructor
Also make Request more standard compliant:

> The `url` attribute's getter must return request's url, **serialized.**
2016-10-12 17:29:33 -07:00
Timothy Gu 838071247d Convert all files to ES2015 (#182)
Elements of this commit come from #140 by @gwicke.
2016-10-10 11:50:04 -07:00
Timothy Gu 993d4cdea1 Convert Headers to ES2015 and implement Iterable interface (#180)
Closes #127, #174.
2016-10-08 20:51:01 -07:00
Timothy Gu 7c26fa9479 Add Babel infrastructure
No actual code has been changed yet.
2016-10-04 02:59:46 -07:00
David Frank e926483448 minor format fix and comments 2016-09-24 17:12:18 +08:00
Dan Dascalescu 95b58936b8 Return empty .json() object on 204. Fix #165. (#166)
Handle an edge case where 204 No Content response body is empty, but node-fetch trying to parse the empty body as-is.
2016-09-24 17:06:18 +08:00
David Frank ffddec0ad2 fix test: buffer.alloc is not available for older node.js release 2016-09-11 23:34:50 +08:00
David Frank 788c4627a7 make sure we default to 200 on new response 2016-09-11 23:17:09 +08:00
David Frank f17aa9af1f call tostring on plain object body 2016-09-11 22:33:22 +08:00
David Frank e4a7da8326 making sure headers will drop buffer value 2016-09-11 22:18:43 +08:00
David Frank 6bac50f1da fix bug related to request wrapping, where counter adopts follow value incorrectly 2016-09-11 22:02:39 +08:00
David Frank d24ec6f7c4 handle raw deflate response from old servers 2016-08-03 17:31:46 +08:00
David Frank 49363411f8 add a much-requested buffer() method for convenience 2016-08-03 13:27:32 +08:00
David Frank 140ae57f77 support buffer for request body 2016-08-03 13:07:47 +08:00
David Frank 3c05442699 HEAD request does not need to process body with decompression 2016-08-03 12:55:58 +08:00
David Frank 2a6e656c1d allow any url for new request, but still reject non-http url in fetch 2016-05-26 02:19:16 +08:00
David Frank a2607719ce send delete body with content-length 2016-05-26 02:00:25 +08:00
David Frank 8a6213198b avoid calling formdata getLengthSync when it has stream as fields 2016-05-26 01:37:36 +08:00
David Frank 419597fe13 user should be able to resolve cloned body before original body 2016-05-26 01:01:56 +08:00