@bbc/http-transport-rate-limiter

A global plugin for http-transport to utilise the simple-rate-limiter

Usage no npm install needed!

<script type="module">
  import bbcHttpTransportRateLimiter from 'https://cdn.skypack.dev/@bbc/http-transport-rate-limiter';
</script>

README

http-transport-rate-limiter

A global plugin for http-transport to utilise the simple-rate-limiter.

Usage

Configure the plugin as shown below. You can then use it as a global plugin for http-transport.

const simpleRateLimiterPlugin = require('@bbc/http-transport-rate-limiter')(count, duration);

The plugin takes two arguments:

  • count: The amount of calls that are allowed per time window
  • duration: The length of the time window to restrict calls within. In milliseconds.

Example

'use strict';

const url = 'http://example.com/';
const simpleRateLimiterPlugin = require('@bbc/http-transport-rate-limiter');

const client = require('http-transport').createBuilder()
  .use(simpleRateLimiterPlugin(2, 1000)
  .createClient();

client
  .get(url)
  .asResponse()
  .then((res) => {
    if (res.statusCode === 200) {
      console.log(res.body);
    }
  });