JSPM

  • Created
  • Published
  • Downloads 1169962
  • Score
    100M100P100Q194580F
  • License BSD-3-Clause

Tiny LRU cache for Client or Server

Package Exports

  • tiny-lru

Readme

Tiny LRU

Least Recently Used cache for Client or Server.

import {lru} from "tiny-lru";
const cache = lru(max, ttl = 0, resetTtl = false);

Lodash provides a memoize function with a cache that can be swapped out as long as it implements the right interface. See the lodash docs for more on memoize.

Example

_.memoize.Cache = lru().constructor;
const memoized = _.memoize(myFunc);
memoized.cache.max = 10;

clear

Method

Clears the contents of the cache

return {Object} LRU instance

Example

cache.clear();

delete

Method

Removes item from cache

param  {String} key Item key
return {Object}     LRU instance

Example

cache.delete("myKey");

entries(["key1", "key2"])

Method

Returns an Array cache items

param  {Array} keys (Optional) Cache item keys to get
return {Object} LRU instance

Example

cache.entries(['myKey1', 'myKey2']);

evict

Method

Evicts the least recently used item from cache

return {Object} LRU instance

Example

cache.evict();

expiresAt

Method

Gets expiration time for cached item

param  {String} key Item key
return {Mixed}      Undefined or number (epoch time)

Example

const item = cache.expiresAt("myKey");

first

Property

Item in "first" or "bottom" position

Example

const cache = lru();

cache.first; // null - it's a new cache!

get

Method

Gets cached item and moves it to the front

param  {String} key Item key
return {Mixed}      Undefined or Item value

Example

const item = cache.get("myKey");

has

Method

Returns a Boolean indicating if key is in cache

return {Object} LRU instance

Example

cache.has('myKey');

keys

Method

Returns an Array of cache item keys.

return {Array} Array of keys

Example

console.log(cache.keys());

max

Property

Max items to hold in cache (1000)

Example

const cache = lru(500);

cache.max; // 500

last

Property

Item in "last" or "top" position

Example

const cache = lru();

cache.last; // null - it's a new cache!

resetTtl

Property

Resets item.expiry with each set() if true (false)

Example

const cache = lru();

cache.resetTtl; // false

set

Method

Sets item in cache as first

param  {String} key   Item key
param  {Mixed}  value Item value
return {Object}       LRU instance

Example

cache.set("myKey", {prop: true});

size

Property

Number of items in cache

Example

const cache = lru();

cache.size; // 0 - it's a new cache!

ttl

Property

Milliseconds an item will remain in cache; lazy expiration upon next get() of an item

Example

const cache = lru();

cache.ttl = 3e4;

values(["key1", "key2"])

Method

Returns an Array cache items

param  {Array} keys (Optional) Cache item keys to get
return {Array} Cache items

Example

cache.values(['abc', 'def']);

License

Copyright (c) 2023 Jason Mulligan Licensed under the BSD-3 license.