Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

glouton

yorunohikage13MIT1.0.0

Like Promise.all but with retry and rate limit

promise, concurrency, batch, api, limit, queue, retry

readme

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);
  });
});