New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

tenure

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tenure

An manageable LRU cache and configurable eviction policy

latest
Source
npmnpm
Version
1.2.0
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

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

FAQs

Package last updated on 12 Jun 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts