A simple in memory cache to use with javascript (nodejs or HTML)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
sample
test
.codeclimate.yml
.eslintignore
.gitignore
.travis.yml
LICENSE
README.md
package.json

README.md

node-dummy-cache

A simple in memory cache to use with javascript.

npm Build Status Test Coverage dependencies Status devDependencies Status

Installation

node.js

npm install node-dummy-cache

Import inside your code:

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

HTML

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.

Usage

Simple key/value

var users = cacheFactory.create(cacheFactory.ONE_HOUR);

users.put(1, { name : 'A' });

var user = users.get(1);

Fetch when needed

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
});

Function style

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
});

Mixed

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
});

users(1, function(err, user) {
	// You got it
});

var user = users.get(1); // Returns only if cached

user = users(1); // Returns only if cached

Complex

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

API

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

cacheFactory.create(maxAliveTimeMS: number, maxNotAccessedTimeMs: number, fetcher: function)

Creates a new cache.

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

cacheFactory.create(maxAliveTimeMS: number, fetcher: function)

Creates a new cache.

Params:

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

cacheFactory.create(maxAliveTimeMS: number, maxNotAccessedTimeMs: number)

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

cacheFactory.create(fetcher: function)

Creates a new cache. Values never expires.

Params:

  • fetcher : callback to fetch the data

cacheFactory.create(maxAliveTimeMS: number)

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

cacheFactory.create()

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

License

MIT. Check LICENSE file.