Package Exports
- lru-queue
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (lru-queue) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
lru-queue
Size limited queue based on LRU algorithm
Originally derived from memoizee package.
It's low-level utility meant to be used internally within cache algorithms. It backs up max
functionality in memoizee project.
Installation
$ npm install lru-queue
To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: Browserify, Webmake or Webpack
Usage
Create queue, and provide a limit
var lruQueue = require('lru-queue');
var queue = lruQueue(3); // limit size to 3
Each queue exposes three methods:
queue.hit(id)
Registers hit for given id (must be plain string).
queue.hit('raz'); // size: 1
If hit doesn't remove any old item from list it returns undefined
, otherwise it returns removed id.
queue.hit('dwa'); // undefined, size: 2
queue.hit('trzy'); // undefined, size: 3 (at max)
queue.hit('raz'); // undefined, size: 3 (at max)
queue.hit('dwa'); // undefined, size: 3 (at max)
queue.hit('cztery'); // 'trzy', size: 3 (at max)
queue.delete(id);
id's can be cleared from queue externally
queue.delete('raz'); // size: 2
queue.delete('cztery'); // size: 1
queue.clear();
Resets queue
queue.clear(); // size: 0
Tests 
$ npm test