Storage-agnostic LRU list with async/multi-key operations.
var list = require('lru-list').create()
list.setOption('limit', 50)
.setOption('set', function(pairs, cb) {
// Write to storage ...
cb(/* or Error() */);
})
.setOption('get', function(keys, cb) {
// Read from storage ...
cb(/* or Error() */, pairs);
})
.setOption('del', function(keys, cb) {
// Write to storage ...
cb(/* or Error() */);
});
list.set(key, val, function setDone(err) { /* ... */ });
list.set(pairs, function setDone(err) { /* ... */ });
list.shift(function shiftDone(err) { /* ... */ });
list.get(keys, function getDone(err, val) { /* ... */ });
list.del(keys, function delDone(err) { /* ... */ });
See bindle for an example of using lru-list
to handle QUOTA_EXCEEDED_ERR
errors from localStorage
.
npm install lru-list
component install codeactual/lru-list
MIT
Based on js-lru (MIT).
npm test
Browser via Karma
npm install karma
karma start
- Browse
http://localhost:9876/
make build && karma run