Skip to content
Size limited queue based on LRU algorithm
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test
.editorconfig
.gitignore
CHANGES
LICENSE
README.md
index.js
package.json

README.md

Build status Windows status Transpilation status npm version

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 removed id is returned.

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 the queue

queue.clear(); // size: 0

Tests

$ npm test
You can’t perform that action at this time.