npm.io
0.0.1 • Published 10 years ago

singleflight

Licence
MIT
Version
0.0.1
Deps
0
Vulns
0
Weekly
0
Stars
3

Singleflight

A wrapper for de-duplicating in-flight requests

Singleflight allows you to simply wrap asynchronous functions of the form function(key, callback) where key is a single string argument and callback can be a function of any signature.

Usage

var singleflight = require('singleflight');
var request = require('request');

var wrappedget = singleflight(request.get);

wrappedget('https://www.example.com/cool.jpg', function(error, response) {
  ...
});
wrappedget('https://www.example.com/cool.jpg', function(error, response) {
  ...
});

will result in only one call to fetch https://www.example.com/cool.jpg.

Useful applications include re-validation and re-population of caches, and any other de-duplication of longish running asynchronous tasks. Combines well with other async flow control tools like Promises and the async and vasync libraries.

Testing

npm test