ezzy-cache

3.1.5 • Public • Published

ezzy-cache

Greenkeeper badge Build Status Coverage Status

A small library to handle a lightweight memory cache.

New Cache Library

    const Cache = require('ezzy-cache');
    const cache = new Cache();
    
    // or 
    
    const {cache} = require('ezzy-cache');
    
    // or
    
    const cache = require('ezzy-cache').cache;

Get a Library or a Dictionary

Library

A library is simply a scope in where the cache items will be stored. It's helpful to separate cache libraries so we can flush them separately and allow them to timeout at different times.

Dictionary

A dictionary is a cached trie that reads large amounts of data fast without much usage. This could be used with autocomplete features.

    const {cache} = require('ezzy-cache');

    // If myLibrary doesn't exist, it is created on the fly
    const lib = cache.getLibrary('myLibrary');
    
    // If myLibrary doesn't exist, it is created on the fly
    const lib = cache.getDictionary('myDictionary');

CacheLibrary Supporting methods

    const {cache} = require('ezzy-cache');
    const cacheLibrary = cache.getLibrary('myLib');
disable()

Disables the library. Keys will return as undefined.

enable()

Enables the library after it's been disabled. Keys will be available as usual.

flush()

Flushes all the entries.

keys

This is a getter method that returns the keys available.

add(key, value[, timeout])

Adds a key to the library.

remove(key)

Removes a key from the library.

getOrElse(key, promiseFn [, timeout])
  • In my opinion, the most useful method * With this method, you can pass a second argument function that will be processed ONLY if the key is not resolved. This method returns a promise.
    const {cache} = require('ezzy-cache');
    
    let value;
    
    cache.getLibrary('myLib')
      .getOrElse('myKey', () => Promise.resolve('hello'))
      .then(result => {
        // this function will only be invoked every minute
        
        value = result;
        
      }, 60000);

Examples

Get a Key

The regular usage of a cache library is to obtain a key from it. Depending on the timeout, the key will be available or not.

    const {cache} = require('ezzy-cache');
    
    let key;
    
    key = cache.getLibrary('myLib').get('myKey');
    // key -> empty
    key = cache.getLibrary('myLib').get('myKey', true);
    // key -> true
    
    cache.getLibrary('myLib').add('myKey', 555);
    key = cache.getLibrary('myLib').get('myKey', true);
    // key -> 555

Describe

Sometimes you want to output a brief overview description of the cache library, for this, it's helpful to invoke the describe method.

    const {cache} = require('ezzy-cache');
    console.dir(cache.getLibrary('myLib').describe());

Readme

Keywords

none

Package Sidebar

Install

npm i ezzy-cache

Weekly Downloads

4

Version

3.1.5

License

MIT

Unpacked Size

16.5 kB

Total Files

9

Last publish

Collaborators

  • ezzygemini