Sha256: e9c3e5c7b4c4a18701ec0930c0f7127f7fa9405f6c7b1d883cebacfffc434b86

Contents?: true

Size: 1.71 KB

Versions: 14

Compression:

Stored size: 1.71 KB

Contents

# lru-queue
## Size limited queue based on [LRU](http://en.wikipedia.org/wiki/Least_Recently_Used#LRU) algorithm

_Originally derived from [memoizee](https://github.com/medikoo/memoize) package._

It's low-level utility meant to be used internally within cache algorithms. It backs up [`max`](https://github.com/medikoo/memoize#limiting-cache-size) functionality in [memoizee](https://github.com/medikoo/memoize) 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](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)

### Usage

Create queue, and provide a limit

```javascript
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).

```javascript
queue.hit('raz'); // size: 1
```

If hit doesn't remove any old item from list it returns `undefined`, otherwise it returns removed _id_.


```javascript
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

```javascript
queue.delete('raz'); // size: 2
queue.delete('cztery'); // size: 1
```

#### queue.clear();

Resets queue

```javascript
queue.clear(); // size: 0
```

### Tests [![Build Status](https://travis-ci.org/medikoo/lru-queue.png)](https://travis-ci.org/medikoo/lru-queue)

	$ npm test

Version data entries

14 entries across 7 versions & 1 rubygems

Version Path
entangled-0.0.16 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.16 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.15 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.15 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.14 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.14 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.13 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.13 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.12 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.12 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.11 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.11 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md
entangled-0.0.10 spec/dummy/public/node_modules/bower/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee/node_modules/lru-queue/README.md