an-lru-cache

A simple LRU Cache, a Map that has a maximum number of entries and which discards the least recently used items first.

Usage no npm install needed!

<script type="module">
  import anLruCache from 'https://cdn.skypack.dev/an-lru-cache';
</script>

README

ES6 LRU Cache

A simple LRU Cache, a Map that has a maximum number of entries and which discards the least recently used items first.

To install

$ npm install an-lru-cache

Coverage Status Build Status Dependencies Status npm

API

The API mirrors the builtin Map and WeakMap APIs but does not include iterators.

const { LruCache } = require('an-lru-cache')

const myCache = new LruCache()  // Default capacity is 100

function foo(key, value) {
  myCache.set(key, value)
  // ...
  return myCache.get(key)
}

function bar(key) {
  if (myCache.has(key)) {
    // ...
  }
  myCache.delete(key)
}

.set(key, value)

Associates value with key so that .get(key) returns value until a subsequent .set or .delete with the same key or eviction.

.get(key, fallbackValue=undefined)

Returns the value associated with key, or the fallbackValue if supplied.

Gets may return the fallbackValue even if there was a value associated with key if that entry was evicted to ensure that the number of entries did not exceed the maximum allowed.

.delete(key, fallbackValue=undefined)

Deletes any entry for the given key returning the previously associated value if present or fallbackValue otherwise.

.has(key)

True iff there is a value associated with key.