JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 121619
  • Score
    100M100P100Q166097F
  • License MIT

In memory cache lru cache with ttl support.

Package Exports

  • receptacle

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (receptacle) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Receptacle.

In memory cache for node and the browser that supports lru and ttl algorithms.

Items in the cache will move to the back queue when accessed and any key can optionally have an expiry time.

Installation

Npm

npm install receptacle

Example

var Receptacle = require('receptacle');
var cache      = new Receptacle({ max: 100 }); // Create a cache with max 100 items.

cache.set("item", 1, { ttl: 100 }); //-> Add item to cache (expire in 100ms).
cache.get("item"); //-> 1
cache.has("item"); //-> true
cache.expire("item", 50); //-> Expire in 50ms (instead of 100).
cache.delete("item"); //-> Delete item right away.
cache.clear(); //-> Empty the cache.

Serialization

You can easily serialize and rehydrate your cache as JSON.

var Receptacle = require('receptacle');
var cache      = new Receptacle({ max: 5 }); // Create a cache with max 5 items.

cache.set("a", 1, { ttl: 1000 });

var serialized = JSON.stringify(cache); //-> '{ "max": 5, "items": [...] }'

// Create a cache from the json which will retain all ttl information (and remove any keys that have expired).
var newCacheFromJSON = new Receptacle(JSON.parse(serialized));

API

###Receptacle({ max=Infinity, items=[], id=# }) Create a new cache.

####id Each cache is assigned a unique id for organizing, you can optionally provide an id during instanciation.

####max Get the maximum size of the cache (default of Infinity).

####size Get the current number of items in the cache.

####has(key) Check if a key is in the cache, even if it's undefined.

####get(key) Retreive a key from the cache.

####set(key, value, options) Set a key in the cache, optionally setting a ttl option that will cause the value to expire.

####delete(key) Immediately remove a key from the cache.

####expire(key, [ms=0]) Update the expire time for a key.

####clear() Remove all keys from the cache.


Contributions

  • Use gulp to run tests.

Please feel free to create a PR!