Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Jun 24, 2020. It is now read-only.
/ fetch-timeout Public archive

HTTP/S fetch wrapper that adds the possibility to set a timeout after which a custom error is returned.

License

Notifications You must be signed in to change notification settings

jkomyno/fetch-timeout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!

About

HTTP/S fetch wrapper that adds the possibility to set a timeout after which a custom error is returned.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published