node package manager

node-dummy-cache

A simple in memory cache to use with nodejs or the browser

node-dummy-cache

A simple in memory cache to use with javascript.

npm install node-dummy-cache

Import inside your code:

var cacheFactory = require('node-dummy-cache');

Download lib/dummy-cache.js.

Import inside HTML:

<script type="text/javascript" src="dummy-cache.js"></script>

For old browsers you will also need json2.js.

var users = cacheFactory.create(cacheFactory.ONE_HOUR);
 
users.put(1, { name : 'A' });
 
var user = users.get(1);

Before:

function dummy(a, b, c, callback) {
    // Do complex stuff here 
    callback(undefined, 'A', 'B');
};
 
dummy(1, 2, 3, function(err, data1, data2) {
    // You got it 
});

Adding cache:

var dummy = cacheFactory.create(cacheFactory.ONE_HOUR, function (a, b, c, callback) {
    // Do complex stuff here 
    callback(undefined, 'A', 'B');
});
 
dummy(1, 2, 3, function(err, data, data2) {
    // You got it 
});

Before:

function dummy(a, b, c) {
    return new Promise(function(resolve, reject) {
        // Do complex stuff here 
        resolve('A');
    });
};
 
dummy(1, 2, 3).then(function(data) {
    // You got it 
});

Adding cache:

var dummy = cacheFactory.create(cacheFactory.PROMISE, cacheFactory.ONE_HOUR, function (a, b, c) {
    return new Promise(function(resolve, reject) {
        // Do complex stuff here 
        resolve('A');
    });
});
 
dummy(1, 2, 3).then(function(data) {
    // You got it 
});
var users = cacheFactory.create(cacheFactory.ONE_HOUR, function (id, callback) {
    // Do complex stuff here 
    callback(undefined, user);
});
 
users.get(1, function(err, user) {
    // You got it 
});
var users = cacheFactory.create(cacheFactory.PROMISE, cacheFactory.ONE_HOUR, function (id) {
    return new Promise(function(resolve, reject) {
        // Do complex stuff here 
        resolve(user);
    });
});
 
users.get(1).then(function(user) {
    // You got it 
});
var users = cacheFactory.create(cacheFactory.ONE_HOUR, function (id, callback) {
    // Do complex stuff here 
    callback(undefined, user);
});
 
users(1, function(err, user) {
    // You got it 
});
 
users.get(1, function(err, user) {
    // You got it 
});
 
users.getAsPromise(1).then(function(user) {
    // You got it 
});
 
var user = users.get(1); // Returns only if cached 
 
user = users(1); // Returns only if cached 
var users = cacheFactory.create(cacheFactory.ONE_HOUR, function (id1, id2, callback) {
    // Do complex stuff here 
    callback(undefined, user, date);
});
 
users.get(1, 2, function(err, user, date) {
    // You got it 
});
 
var user = users.get(1, 2); // Returns the user only if cached 
 
users.put(1, 2, user); // Adds the user, but no date 
 

All arguments passed to the get / put must be JSON serializable.

Creates a new cache.

This is the base constructor, all the other ones are shortcuts to this.

Params:

  • An object with the cache configuration. The available fields are:
    • type : one of cacheFactory.CALLBACK or cacheFactory.PROMISE. The default is CALLBACK.
    • maxAliveTimeMS : Max time a value will stay in cache starting with its creation. The default is forever.
    • maxNotAccessedTimeMs : Max time a value will stay in cache after its last access. The default is to only consider alive time.
    • onErrorMaxAliveTimeMs : Max time a value will stay in cache when an error is returned. The default is the same as maxAliveTimeMS.
  • fetcher : callback to fetch the data

Creates a new cache.

Params:

  • type : one of cacheFactory.CALLBACK or cacheFactory.PROMISE
  • maxAliveTimeMS : Max time a value will stay in cache starting with its creation
  • maxNotAccessedTimeMs : Max time a value will stay in cache after its last access
  • fetcher : callback to fetch the data

Creates a new cache. Fetcher expects a callback.

Params:

  • maxAliveTimeMS : Max time a value will stay in cache starting with its creation
  • maxNotAccessedTimeMs : Max time a value will stay in cache after its last access
  • fetcher : callback to fetch the data

Creates a new cache.

Params:

  • type : one of cacheFactory.CALLBACK or cacheFactory.PROMISE
  • maxAliveTimeMS : Max time a value will stay in cache starting with its creation
  • fetcher : callback to fetch the data

Creates a new cache. Fetcher expects a callback.

Params:

  • maxAliveTimeMS : Max time a value will stay in cache starting with its creation
  • fetcher : callback to fetch the data

Creates a new cache. All values must be added to cache using put.

Params:

  • maxAliveTimeMS : Max time a value will stay in cache starting with its creation
  • maxNotAccessedTimeMs : Max time a value will stay in cache after its last access

Creates a new cache. Fetcher expects a callback. Values never expires.

Params:

  • fetcher : callback to fetch the data

Creates a new cache. All values must be added to cache using put.

Params:

  • maxAliveTimeMS : Max time a value will stay in cache starting with its creation

Creates a new cache. Values never expires. All values must be added to cache using put.

MIT. Check LICENSE file.