Socket
Book a DemoInstallSign in
Socket

invocation-rate-compliance

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

invocation-rate-compliance

A utility that ensures invocation of a function complies to a limited rate

latest
Source
npmnpm
Version
0.0.1
Version published
Maintainers
1
Created
Source

Invocation Rate Compliance

NPM

A throttle utility that ensures invocation complies to a limited rate

Usage

var invocationRateCompliance = require('invocation-rate-compliance');

var throttled = invocationRateCompliance({
  delay        : 100,
  before       : before,
  compliant    : compliant,
  antiCompliant: antiCompliant,
  after        : after
});

function before() {
  return 'invocation was';
}

function compliant(previous) {
  return previous + ' compliant';
}

function antiCompliant(previous) {
  return previous + ' anti-compliant';
}

function after(previous, x) {
  return previous + ' with argument ' + String(x);
}

throttled(5);                // invocation was compliant with argument 5
throttled('a');              // invocation was anti-compliant with argument a
setTimeout(throttled, 200);  // invocation was compliant with argument undefined

The utility is a factory for a method that may be invoked. The first invocation is always compliant and a chain of methods [before, compliant, after] is called. If the factoried method is invocated again before the given delay then invocation is anti-compliant and a chain of methods [before, antiCompliant, after] is called.

The delay is milliseconds measured from the last compliant invocation. Anti-compliant invocations do not change internal state.

At each stage in the method chain the value returned by the previous function is the first argument to the following function. Successive arguments will match those of the invocation. The first argument to the before method is always undefined.

Keywords

utility

FAQs

Package last updated on 18 Nov 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts