LRU cache top on Map-like. Support object key.
MIT License
LRU cache top on Map-like. Support non-string key.
env bundle minify gzip
-- 13.8 kB 6.32 kB 2.34 kB
I have used isaacs/node-lru-cache, but this library is large for me.
env bundle minify gzip
-- 43.9 kB 27.5 kB 10.1 kB
Install with npm:
npm install lru-map-like
const {LRUMapLike} = require("lru-map-like");
const cache = new LRUMapLike(3);
cache.set(0, "a");
cache.set(1, "b");
cache.set(2, "c");
assert.deepEqual(cache.values(), ["a", "b", "c"]);
// over limit(3)
cache.set(-1, "ADDED");
assert.deepEqual(cache.values(), ["b", "c", "ADDED"]);
Object as key are fully supported. It is map-like feature.
const LRUMapLike = require("lru-map-like");
const cache = new LRUMapLike();
const keyObject = {};
const valueObject = {};
cache.set(keyObject, valueObject);
assert.strictEqual(cache.get(keyObject), valueObject);
assert.notStrictEqual(cache.get({}), valueObject);
LRUMapLike
LRU cache implementation Based on https://github.com/rse/cache-lru
limit
set the cache limit
Returns: number
limit
set the cache limit
Parameters
max
: number
onDispose(cb: Function): LRUMapLike
configure function to be called before item is disposed
Parameters
cb
: Function
Returns: LRUMapLike
size
get size of items
Returns: number
keys(): Array<Any>
get keys of all items in order
Returns: Array<Any>
values(): Array<Any>
get values of all items in order
Returns: Array<Any>
forEach(cb: function (value, key), ctx: Any): Any
iterate over all items in order
Parameters
cb
: function (value, key)
ctx
: Any
Returns: Any
has(key: Any): boolean
check whether item exists under key
Parameters
key
: Any
Returns: boolean
peek(key: Any): Any
get value under key without promoting item
Parameters
key
: Any
Returns: Any
get(key: Any): (Any | undefined)
get value under key
Parameters
key
: Any
Returns: (Any | undefined)
set(key: Any, val: Any): LRUMapLike
set key as value
Parameters
key
: Any - string, object etc..val
: Any
Returns: LRUMapLike
delete(key: Any): LRUMapLike
delete item under key
Parameters
key
: Any
Returns: LRUMapLike
clear(): LRUMapLike
delete all items
Returns: LRUMapLike
See Releases page.
Install devDependencies and Run npm test
:
npm i -d && npm test
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
MIT © azu
This library based on https://github.com/rse/cache-lru
Copyright (c) 2015-2016 Ralf S. Engelschall (http://engelschall.com/)