1.2.0 • Published 3 years ago

tenure v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Build
Status npm version License: MIT

Tenure | Manageable LRU caching

Tenure is a manageable LRU cache instance that uses hashmap lookups and an Open Doubly Linked List to enact the Least-Recently Used algorithm

Installation

npm install tenure

OR

yarn add tenure

LRU Cache Algorithm

Supported Environments

Tenure currently supports UMD, CommonJS (node versions >= 10), and ESM build-targets

Commonjs:

var LruCache = require('tenure');

var cache = new LruCache(100, cb);

ESM:

import LruCache from 'tenure';

const cache = new LruCache(100, cb);

API Reference

LruCache

new LruCache(capacity, cb)

Implements a canonical Least Recently-Used Cache

ParamTypeDescription
capacitynumberThe maximum capacity (items) of the cache; beyond this threshold, the eviction policy is enacted. Defaults to 10
cbfunctionOptional callback to be invoked upon each eviction; called with evicted item key, value

lruCache.get(key) ⇒ any | null

Retrieve an item from the cache; if extant, the item will be designated 'most-recently used' Returns: any | null - The retrieved value, if extant; else, null

ParamType
keyany

lruCache.put(key, value) ⇒ boolean

Add or update a given key / value pair in the cache

Put transactions will move the key to the head of the cache, designating it as 'most recently-used'

If the cache has reached the specified capacity, Put transactions will also enact the eviction policy, thereby removing the least recently-used item Returns: boolean - A boolean indicating whether an eviction occurred

ParamType
keyany
valueany

lruCache.del(key) ⇒ boolean

Remove an item corresponding to a given key from the cache, if extant Returns: boolean - A boolean indicating whether of not the delete transaction occurred

ParamType
keyany

lruCache.keys() ⇒

Returns: An array of all keys currently extant in the cache

lruCache.has(key) ⇒

Verify the existence of a key in the cache without enacting the eviction policy Returns: A boolean flag verifying the existence (or lack thereof) of a given key in the cache

ParamType
keyany

lruCache.lru() ⇒ array | null

Returns: array | null - the least recently-used key / value pair, or null if not extant

lruCache.drop()

Drop all items from the cache, effectively purging it

lruCache.resize(cap) ⇒ number

Resizes the cache capacity.

Invoking this transaction will evict all least recently-used items to adjust the cache, where necessary Returns: number - the number of evictions enacted

ParamTypeDescription
capnumbernew capacity

lruCache.size() ⇒ number

Returns: number - the current size of the cache

lruCache.capacity() ⇒ number

Returns: number - the current maximum buffer capacity of the cache

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago

0.0.1

3 years ago