Socket
Socket
Sign inDemoInstall

request-replay

Package Overview
Dependencies
1
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    request-replay

Replays a request when a network error occurs


Version published
Weekly downloads
16K
decreased by-28.75%
Maintainers
1
Install size
40.2 kB
Created
Weekly downloads
 

Readme

Source

request-replay

NPM version Downloads Build Status Dependency status Dev Dependency status

Replays a request when a network error occurs using the retry module.

DO NOT use this module if you are piping request instances. If you are listening to data events to buffer, beware that you must reset everything when a replay occurs. This is why pipping is not supported.

Installation

$ npm install request-replay

Usage

var fs = require('fs');
var request = require('request');
var replay = require('request-replay');

// Note that the options argument is optional
// Accepts the same options the retry module does and an additional
// errorCodes array with error codes that cause the replay to happen
// Check out the code to see which is the default value for it
replay(request('http://google.com/doodle.png', { timeout: 10000 }, function (err, response, body) {
    // Do things
}), {
    retries: 10,
    factor: 3
})
.on('socket', function (socket) {
    // In some operating systems the socket timeout is 0 so you must explicitly set it
    // and close the socket once reached
    socket.setTimeout(10000, socket.end.bind(socket));
})
.on('replay', function (replay) {
    // "replay" is an object that contains some useful information
    console.log('request failed: ' + replay.error.code + ' ' + replay.error.message);
    console.log('replay nr: #' + replay.number);
    console.log('will retry in: ' + replay.delay + 'ms')
});

Note that the default retry options are modified to be more appropriate for requests:

  • retries: The maximum amount of times to retry the operation. Default is 5.
  • factor: The exponential factor to use. Default is 2.
  • minTimeout: The amount of time before starting the first retry. Default is 2000.
  • maxTimeout: The maximum amount of time between two retries. Default is 35000.
  • randomize: Randomizes the timeouts by multiplying with a factor between 1 to 2. Default is true.

License

Released under the MIT License.

Keywords

FAQs

Last updated on 20 Aug 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc