fetch-timeout

0.0.2 • Public • Published

npm version Build Status

fetch-timeout

HTTP/S fetch wrapper that adds the possibility to set a timeout after which a custom error is returned. If used in NodeJS, this package is dependent on node-fetch, altough it will always try to use window.fetch.

Installation

npm install --save fetch-timeout

Nodejs environment only

Also add the following package, since the standard window.fetch isn't accessible from node.

npm install --save node-fetch

Usage

ES5

  var fetchTimeout = require('fetch-timeout');
 
  fetchTimeout('https://api.github.com/', {
    method: 'GET',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
  }, 5000, 'My custom timeout error string')
  .then(function(res) {
    if (res.status !== 200) {
      throw new Error('Status code not OK', res.status);
    } else {
      return res.json();
    }
  })
  .then(function(json) {
    console.log("json returned from response");
  })
  .catch(function(err) {
      console.log("error", err);
  });

ES6

  import fetchTimeout from 'fetch-timeout';
 
  fetchTimeout('https://api.github.com/', {
    method: 'GET',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
  }, 5000, 'My custom timeout error string')
  .then(res => {
    if (res.status !== 200) {
      throw new Error('Status code not OK', res.status);
    } else {
      return res.json();
    }
  })
  .then(json => {
    console.log("json returned from response");
  })
  .catch(err => {
      console.log("error", err);
  });

API

Arguments Type Optional Default Description
url string false url to pass to node-fetch
options object true {} standard options to pass to node-fetch
timeout number true 10000 maximum acceptable timeout before throwing the timeout error
error string true 'Timeout error' custom error string after the timeout is expired

Tests

npm test

Contributing

Pull requests and suggestions are more than welcome!

Readme

Keywords

Package Sidebar

Install

npm i fetch-timeout

Weekly Downloads

1,211

Version

0.0.2

License

MIT

Last publish

Collaborators

  • jkomyno