Skip to content

Like Promise.all but with retry and rate limit

Notifications You must be signed in to change notification settings

YoruNoHikage/glouton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Glouton

Ever wanted to send a lot of requests concurrently to an API but got bothered with API limits ? Or failing requests ?

Example with fetch

import glouton from 'glouton';

const fetchNoLimit = glouton(fetch, {

  concurrency: 400, // 400 requests at a time

  validateResponse: r => {

    // if limit has been reached, we wait 1 second
    if (!r.ok && r.headers.get('x-ratelimit') === 0) {
      return 1000;
    }
    
    // if request has failed, we'll try again later
    if (!r.ok) {
      return 0;
    }

    // everything is ok, we shall proceed
    return true;
  },

});

[/* some ids */].forEach(() => {
  fetchNoLimit('http://someapi.on.the.web')
  .then((r) => {
    console.log("Here's my response!", r);
  });
});

About

Like Promise.all but with retry and rate limit

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published