node package manager

tiny-lru

Tiny LRU cache for Client or Server

Tiny LRU

Least Recently Used cache for Client or Server.

const cache = lru(500);

Lodash provides a memoize function with a cache that can be swapped out as long as it implements the right interface. See the lodash docs for more on memoize.

_.memoize.Cache = lru().constructor;
const memoized = _.memoize(myFunc);
memoized.cache.max = 10;

Evicts the least recently used item from cache

return {Object} LRU instance

Example

cache.evict();

Item in "first" or "top" position

Example

const cache = lru();
 
cache.first; // null - it's a new cache! 

Gets cached item and moves it to the front

param  {String} key Item key
return {Mixed}      Undefined or Item value

Example

const item = cache.get("myKey");

Hash of cache items

Example

const cache = lru();
 
cache.items; // {} 

Max items to hold in cache (1000)

Example

const cache = lru(500);
 
cache.max; // 500 

Executes onchange(eventName, serializedCache) on the next tick when the cache changes

Example

const cache = lru();
 
cache.notify = true;
cache.onchange = (event, serializedCache) => {
    console.log(event, serializedCache);
};

Accepts eventName & serializedCache arguments

Example

const cache = lru();
 
cache.notify = true;
cache.onchange = (event, serializedCache) => {
    console.log(event, serializedCache);
};

Item in "last" or "bottom" position

Example

const cache = lru();
 
cache.last; // null - it's a new cache! 

Number of items in cache

Example

const cache = lru();
 
cache.length; // 0 - it's a new cache! 

Removes item from cache

param  {String} key Item key
return {Object}     Item

Example

const staleItem = cache.remove("myKey");

Sets item in cache as first

param  {String} key   Item key
param  {Mixed}  value Item value
return {Object}       LRU instance

Example

cache.set("myKey", {prop: true});

Copyright (c) 2016 Jason Mulligan Licensed under the BSD-3 license.