Skip to content

Repository files navigation

node-dummy-cache

A simple in memory cache to use with javascript.

npmBuild StatusTest Coveragedependencies StatusdevDependencies Status

Installation

node.js

npm install node-dummy-cache

Import inside your code:

varcacheFactory=require('node-dummy-cache');

HTML

Download lib/dummy-cache.js.

Import inside HTML:

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

For old browsers you will also need json2.js.

Usage

Simple key/value

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

Fetch when needed

varusers=cacheFactory.create(cacheFactory.ONE_HOUR,function(id,callback){// Do complex stuff herecallback(undefined,user);});users.get(1,function(err,user){// You got it});

Function style

Before:

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

Adding cache:

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

Mixed

varusers=cacheFactory.create(cacheFactory.ONE_HOUR,function(id,callback){// Do complex stuff herecallback(undefined,user);});users.get(1,function(err,user){// You got it});users(1,function(err,user){// You got it});varuser=users.get(1);// Returns only if cacheduser=users(1);// Returns only if cached

Complex

varusers=cacheFactory.create(cacheFactory.ONE_HOUR,function(id1,id2,callback){// Do complex stuff herecallback(undefined,user,date);});users.get(1,2,function(err,user,date){// You got it});varuser=users.get(1,2);// Returns the user only if cachedusers.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.

About

A simple in memory cache to use with javascript (nodejs or HTML)

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages