Nosferatu's Pace Maker

    ylru
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.2 • Public • Published

    ylru

    NPM version build status Test coverage Known Vulnerabilities npm download

    hashlru inspired

    hashlru is the Simpler, faster LRU cache algorithm. Please checkout algorithm and complexity on hashlru.

    ylru extends some features base on hashlru:

    • cache value can be expired.
    • cache value can be empty value, e.g.: null, undefined, '', 0

    Usage

    const LRU = require('ylru');
    
    const lru = new LRU(100);
    lru.set(key, value);
    lru.get(key);
    
    // value2 will be expired after 5000ms
    lru.set(key2, value2, { maxAge: 5000 });
    // get key and update expired
    lru.get(key2, { maxAge: 5000 });

    API

    LRU(max) => lru

    initialize a lru object.

    lru.get(key[, options]) => value | null

    • {Number} options.maxAge: update expire time when get, value will become undefined after maxAge pass.

    Returns the value in the cache.

    lru.set(key, value[, options])

    • {Number} options.maxAge: value will become undefined after maxAge pass. If maxAge not set, value will be never expired.

    Set the value for key.

    lru.keys()

    Get all unexpired cache keys from lru, due to the strategy of ylru, the keys' length may greater than max.

    const lru = new LRU(3);
    lru.set('key 1', 'value 1');
    lru.set('key 2', 'value 2');
    lru.set('key 3', 'value 3');
    lru.set('key 4', 'value 4');
    
    lru.keys(); // [ 'key 4', 'key 1', 'key 2', 'key 3']
    // cache: {
    //   'key 4': 'value 4',
    // }
    // _cache: {
    //   'key 1': 'value 1',
    //   'key 2': 'value 2',
    //   'key 3': 'value 3',
    // }

    License

    MIT

    Contributors


    dominictarr


    fengmk2


    dead-horse


    mourner


    vagusX


    RaoHai

    This project follows the git-contributor spec, auto updated at Wed Mar 16 2022 23:57:13 GMT+0800.

    Keywords

    none

    Install

    npm i ylru

    DownloadsWeekly Downloads

    977,314

    Version

    1.3.2

    License

    MIT

    Unpacked Size

    10.1 kB

    Total Files

    6

    Last publish

    Collaborators

    • dead-horse
    • dead_horse
    • fengmk2