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
.
Example
_.memoize.Cache = lru().constructor;
const memoized = _.memoize(myFunc);
memoized.cache.max = 10;
evict
Method
Evicts the least recently used item from cache
return {Object} LRU instance
Example
cache.evict();
first
Property
Item in "first" or "top" position
Example
const cache = lru();
cache.first;
get
Method
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");
items
Property
Hash of cache items
Example
const cache = lru();
cache.items;
max
Property
Max items to hold in cache (1000)
Example
const cache = lru(500);
cache.max;
notify
Property
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);
};
onchange
Method
Accepts eventName
& serializedCache
arguments
Example
const cache = lru();
cache.notify = true;
cache.onchange = (event, serializedCache) => {
console.log(event, serializedCache);
};
last
Property
Item in "last" or "bottom" position
Example
const cache = lru();
cache.last;
length
Property
Number of items in cache
Example
const cache = lru();
cache.length;
remove
Method
Removes item from cache
param {String} key Item key
return {Object} Item
Example
const staleItem = cache.remove("myKey");
set
Method
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});
License
Copyright (c) 2016 Jason Mulligan
Licensed under the BSD-3 license.