3.1.5 • Published 5 years ago

ezzy-cache v3.1.5

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

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());
3.1.5

5 years ago

3.1.4

5 years ago

3.1.3

5 years ago

3.1.2

5 years ago

3.1.0

5 years ago

3.0.4

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

0.1.30

5 years ago

0.1.29

6 years ago

0.1.28

7 years ago

0.1.27

7 years ago

0.1.26

7 years ago

0.1.24

7 years ago

0.1.23

7 years ago

0.1.22

7 years ago

0.1.21

7 years ago

0.1.20

7 years ago

0.1.19

7 years ago

0.1.18

7 years ago

0.1.17

7 years ago

0.1.16

7 years ago

0.1.15

7 years ago

0.1.14

7 years ago

0.1.13

7 years ago

0.1.12

7 years ago

0.1.11

7 years ago

0.1.10

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago