A fast and lightweight Map based LRU implementation.
npm install basic-lruSocial Media Photo by Mr Cup / Fabien Barral on Unsplash
 
A fast and lightweight, as in 684 bytes, Map based LRU implementation.
``js
import LRU from 'basic-lru';
const LRU = require('basic-lru');
// https://unpkg.com/basic-lru to have LRU globally
// new LRU(maxSize)
const lru = new LRU(100);
// new LRU({max}) or new LRU({maxSize})
const lru = new LRU({max: 1000});
// new LRU({maxAge}) in milliseconds
const lru = new LRU({maxAge: 1000});
// variants
const lru = new LRU({max: 100, maxAge: 1000});
const lru = new LRU({maxSize: 100, maxAge: 1000});
`
This module is a drop-in replacement for any Map instance, and it's mostly 100% compatible with lru, lru-cache, quick-lru, and lru-map modules.
Differently from other modules, this one has the least amount of LOC, zero dependencies, and it's based on _ES2015_ class capability to extend the native Map.
The only difference from a real Map, beside implementing a classic LRU cache, is the peek(key) method, to access an entry without flagging its access time anyhow, and borrowed from other libraries, plus a constructor, also borrowed from other libraries, that accepts either an integer, or an options object with max, or maxSize, and a maxAge` property, where all of these are optional too.