LRU cache top on Map-like. Support non-string key.
npm install lru-map-likeLRU cache top on Map-like. Support non-string key.
- Based on Map-like
- It means that allow to use object as key
- Tiny size: 2kb
```
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
`js`
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.
`js`
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);
LRU cache implementation
Based on
#### 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
get keys of all items in order
Returns: Array<Any>
#### values(): Array
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.
1. Fork it!
2. Create your feature branch: git checkout -b my-new-featuregit commit -am 'Add some feature'
3. Commit your changes: git push origin my-new-feature`
4. Push to the branch:
5. Submit a pull request :D
MIT © azu
This library based on
> Copyright (c) 2015-2016 Ralf S. Engelschall (