Vsevolod Strukchinsky
9ffbbdf5ab
Deferred response event
9 years ago
Vsevolod Strukchinsky
001351cb06
Merge default values in one object
9 years ago
Sindre Sorhus
a64de6f77b
use `url-parse-lax` instead of `prepend-http`
9 years ago
Vsevolod Strukchinsky
6c59ce8b34
Add exponential retry on network errors
Closes #98
9 years ago
Vsevolod Strukchinsky
62ff082deb
Throw on authentication in url string
Closes #106
9 years ago
Vsevolod Strukchinsky
066e6125e0
Emit either error or reponse event in stream mode
Closes #110
9 years ago
Kevin Martensson
f9f2807e63
Don't unzip response in browsers
This reduces the browserifed size from 471 KB to 268 KB.
9 years ago
Vsevolod Strukchinsky
df26918b3d
throw when callback is passed to stream mode
9 years ago
Vsevolod Strukchinsky
0109725b74
workaround throwing in promise mode
Fixes #99
9 years ago
vdemedes
3182234d0e
allow requests via unix domain socket
Closes #96
10 years ago
Vsevolod Strukchinsky
e0863dcce9
pass errors in stream mode
Closes #97
9 years ago
Sindre Sorhus
5c1e976b2f
add XO
10 years ago
Sindre Sorhus
e944467ed5
improve error output on invalid JSON
More descriptive error message and shows the URL of the file in question:
> Unexpected token '/' at 1:1 in http://localhost:6767/invalid
10 years ago
Vsevolod Strukchinsky
bdc1bfb2b8
Do not assign to undefined response
10 years ago
Vsevolod Strukchinsky
e1cbaf200b
Do not override content-type when body is plain object
10 years ago
Vsevolod Strukchinsky
7bea9c4d33
Stringify plain Object in body as application/x-www-form-urlencoded
Closes #70
10 years ago
Sindre Sorhus
8045fc8741
use `http.STATUS_CODES` ponyfill
Since the list differ between Node.js versions: https://github.com/nodejs/io.js/commit/8be6060020
This is different than the previous `statuses` module we used as this is a strict ponyfill for the built-in list.
10 years ago
Sindre Sorhus
082f4fd1d9
💄
10 years ago
Vsevolod Strukchinsky
11680b1b68
Explicit Error classes
Closes #83 and closes #86
10 years ago
Vsevolod Strukchinsky
12c3cf53db
Remove unnecessary variable
10 years ago
Vsevolod Strukchinsky
8768176829
Small simplifications
10 years ago
Vsevolod Strukchinsky
b38a7975cc
Use unzip-response to unzip stream
10 years ago
Vsevolod Strukchinsky
00a9129b85
Add helpers for stream API
10 years ago
Vsevolod Strukchinsky
a1eb3f7801
Move setImmediate closer to sync event
> EventEmitter was made to be used as an abstraction around asynchronous events. Thus, when an event is emitted it will have happened on a different tick than when the event was set.
See https://github.com/joyent/node/issues/8470#issuecomment-58315886
10 years ago
Vsevolod Strukchinsky
16f93eaff1
Quick shims
10 years ago
Vsevolod Strukchinsky
04dbc4b728
Add Promise API
* Base logic moved into event-emitter and all APIs wrapped around it
* read-all-stream combined into one place - less code duplication
* Unzip stream now inherits all properties and function from response and returned instead of response
Closes #66
10 years ago
Vsevolod Strukchinsky
63d95b6316
Drop infinity-agent
Overall it is a bad practice to 'fix' internal modules within the other module.
I think graceful-fs (https://github.com/isaacs/node-graceful-fs#global-patching ) is good example, how to do this:
```js
var http = require('http');
var https = requrie('https');
var infinityAgent = require('infinity-agent');
infinityAgent.patch(http);
infinityAgent.patch(https);
```
This will enable global agent tuning in edge cases.
Closes #73 and closes #60
10 years ago
Vsevolod Strukchinsky
b9c33aa64e
Reselect agent on redirect from http to https
Closes #80
10 years ago
Sindre Sorhus
29e7e958fb
use the node builtin status codes
10 years ago
Vsevolod Strukchinsky
79f1390727
Emit response event only on final request
Closes #75
10 years ago
Connor Hindley
312c80d82c
do not parse json on a 204 response
10 years ago
Vsevolod Strukchinsky
d7a66baac7
Try pathname, if no path is specified
Closes #72
10 years ago
Vsevolod Strukchinsky
b7d4f8caca
Simplify get function and opts/arg juggling
Parse url at the top of got function and work with request object all the way down.
This reduces complexity and unnecessary delete calls in redirects.
10 years ago
Vsevolod Strukchinsky
3c06cca002
Move all code for options.body in one place
10 years ago
Vsevolod Strukchinsky
87d98e1f46
Add content-length header in POST
If:
- not already defined
- 'transfer-encoding' is not used
- body is not Stream
Closes #71
10 years ago
Sindre Sorhus
41d147baaf
minor code style improvements
10 years ago
Sindre Sorhus
550c63fcbe
use `is-redirect` module
10 years ago
Kirill Solovev
f94dcec259
Add accept: application/json header if json option is set
10 years ago
Kirill Solovev
e56f91373a
Access to body of non-200 responses in stream mode
10 years ago
Sindre Sorhus
6bde68ea79
💄
10 years ago
Sindre Sorhus
e3897a0bc0
TODO is a bad pattern
10 years ago
Vsevolod Strukchinsky
52490b2e88
Implement redirect event
Closes #58
10 years ago
Vsevolod Strukchinsky
2302a1e6e5
auto-redirect only on GET and HEAD methods
10 years ago
Vsevolod Strukchinsky
95add95542
fix redirects for host/port etc... in options
10 years ago
Vsevolod Strukchinsky
0797e46608
small fixes in validation
10 years ago
Vsevolod Strukchinsky
1e5993a799
fix query option on redirect
10 years ago
Vsevolod Strukchinsky
be47ce7168
fix query removal from opts
10 years ago
Vsevolod Strukchinsky
d7b1e51a5e
remove timeout and query from opts
10 years ago
Vsevolod Strukchinsky
6b015692aa
throw exception, if url is not string or object
10 years ago
Vsevolod Strukchinsky
53df1ca251
Add query option
10 years ago