hyperdirect
v0.0.0
Published
Follow redirects for hyperquest GET requests
Downloads
5,998
Readme
hyperdirect
Follow redirects for hyperquest GET requests. Process all other requests exactly as normal.
Installation
$ npm install hyperdirect
Usage
//basic usage
var request = require('hyperquest').request;
request('https://github.com/ForbesLindesay/hyperdirect/archive/master.tar.gz')
.pipe(require('fs').createWriteStream(__dirname + '/hyperdirect.tar.gz'));
//moderate usage
var request = require('hyperquest')(2/* Max Redirects to follow, defaults to 10 */);
request('https://github.com/ForbesLindesay/hyperdirect/archive/master.tar.gz')
.pipe(require('fs').createWriteStream(__dirname + '/hyperdirect.tar.gz'));
//advanced usage
var hyperdirect = require('hyperdirect')(5, require('hyperquest'));
API
hyperdirect(maxRedirects, subquest)
Returns a new function with the same API as hyperquest but which follows redirects for GET requests. Both maxRedirects
and subquest
are optional and can be in either order.
If provided, subquest
should be a function which matches the API of hyperquest or an object of the form {request: hyperquest}
where hyperquest
is a function matching the API of hyperquest.
maxRedirects
will default to 10
. Once the request has been redirected more times than that it will give up and throw an error. The error has a res
and statusCode
property set to the apropriate properties from the last request made.
The returned stream will emit redirect
events with the response of any request that results in another redirect. This means you could trace the path something a request took by doing:
require('hyperdirect')(100)(url)
.on('redirect', function (res) {
console.log('REDIRECT ' + res.statusCode + ': ' + res.headers.location);
})
.on('response', function (res) {
console.log('FINAL URL: ' + res.url);
});
hyperdirect.request(uri, opts, cb)
Follows exactly the same API as hyperquest but automatically follows up to 10 redirects for GET requests. It's the same as what you get by calling hyperdirect()
.
License
MIT