Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including lru-halfexpired with all npm packages installed. Try it out:

var lruHalfexpired = require("lru-halfexpired")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

lru-halfexpired v0.0.2

lru cache but get supports a fill callback

halfexpired-lru

lru-cache where get accepts an optional "fill" callback. A fill callback would be used to populate a value in the background before it is really expired. set also supports ttl per key.

example


var cache = require('halfexpired-lru');

cache.set('a',1);

cache.get('a',function(err,key,value,ttl,remaining){
  if(err == 'halfexpired') {
    request(url,function(err,data){
      if(err) {
    // if i set it halfexpired will hit next in half the remaining time.
    cache.set(key,value,remaining);
    console.log('that flakey api failed again! good thing my value is not completely expired ;)');
      } else cache.set(key,value,ttl);
    })
  }
});

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free