jam-cloud/jam-ui/node_modules/lru-queue
Nuwan 23d1ece36d fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
..
test fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
.lint fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
.npmignore fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
.travis.yml fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
CHANGES fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
LICENCE fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
README.md fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
index.js fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30
package.json fixing controller tests after upgradeing to rails5 2022-02-15 16:27:07 +05:30

README.md

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 Build Status

$ npm test