node-miniget
A small http(s) GET library with redirects, retries, reconnects, concatenating or streaming, and no dependencies. This keeps filesize small for potential browser use.
Usage
Concatenates a response
const miniget = require('miniget');
miniget('http://mywebsite.com', (err, res, body) => {
console.log('webpage contents: ', body);
}));
Request can be streamed right away
miniget('http://api.mywebsite.com/v1/messages.json')
.pipe(someWritableStream());
API
miniget(url, [options], [callback(err, http.RequestResponse, body)])
Makes a GET request. options
can have any properties from the http.request()
function, in addition to
maxRedirects
- Default is2
.maxRetries
- Number of times to retry the request if there is a 500 or connection error. Default is1
.maxReconnects
- During a big download, if there is a disconnect, miniget can try to reconnect and continue the download where it left off. Defaults to0
.backoff
- An object withinc
andmax
used to calculate how long to wait to retry a request. Defaults to{ inc: 100, max: 10000 }
.retryOnAuthError
- In addition to retrying the request on server and connection errors, any authentication errors will trigger a retry.highWaterMark
- Amount of data to buffer when in stream mode.transform
- Use this to add additional features. Called with the object thathttp.get()
orhttps.get()
would be called with. Must return a transformed object.acceptEncoding
- An object with encoding name as the key, and the value as a function that returns a decoding stream.Given encodings will be added to theacceptEncoding: { gzip: () => require('zlip').createGunzip(stream) }
Accept-Encoding
header, and the response will be decoded if the server responds with encoded content.
If callback
is given, will concatenate the response, and call callback
with a possible error, the response, and the response body.
Miniget returns a readable stream if callback
is not given, errors will then be emitted on the stream. Returned stream also contains an .abort()
method, and can emit the following events.
Event: redirect
string
- URL redirected to.
Emitted when the request was redirected with a redirection status code.
Event: retry
number
- Number of retry.Error
- Request or status code error.
Emitted when the request fails, or the response has a status code >= 500.
Event: reconnect
number
- Number of reconnect.Error
- Request or response error.
Emitted when the request or response fails after download has started.
Install
npm install miniget
Tests
Tests are written with mocha
npm test