Tiny LRU cache for Client or Server
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
src
test
.eslintrc
.gitignore
.npmignore
.travis.yml
Gruntfile.js
LICENSE
README.md
bower.json
package.json

README.md

Tiny LRU

Least Recently Used cache for Client or Server.

build status

var cache = lru(500);

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

var cache = lru();

cache.first; // null - it's a new cache!

get

Method

Gets cached item and moves it to the front

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

Example

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

items

Property

Hash of cache items

Example

var cache = lru();

cache.items; // {}

max

Property

Max items to hold in cache (1000)

Example

var cache = lru(500);

cache.max; // 500

last

Property

Item in "last" or "bottom" position

Example

var cache = lru();

cache.last; // null - it's a new cache!

length

Property

Number of items in cache

Example

var cache = lru();

cache.length; // 0 - it's a new cache!

remove

Method

Removes item from cache

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

Example

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

Lodash provides a memoize function with a cache that can be swapped out as long as it implements the right interface. Sample usage with lodash:

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

See the lodash docs for more on memoize.

License

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