0.0.4 • Published 8 months ago

@nslibs/cache-manager v0.0.4

Weekly downloads
3
License
UNLICENSED
Repository
-
Last release
8 months ago

CacheManager

Class that manages the caches created in the servers, primarily in nsapi, nsoffice, nsvault.

Usage

let cache = new CacheManager({
    prune_interval: 60 // allows cache manager to prune caches at this interval, seconds
    auto_start: true // when CacheManager is instantiated, will default to auto_prune
    defaults // sets default opts of each child cache
});

cache.create({ ttl = 60 }) // creates a cache
cache.stats() // returns array of objects with {name, ttl, size} for each cache
cache.start() // prunes cache on cache_interval prune interval, default 60 seconds
cache.stop() // stops pruning cache
cache.pruneAll() // prunes all entries older than cache ttl
let myCache = cache.getCache(name)

new Cache ({
    name // random numbers
    ttl: 60 // default
    clone // uses built in clone function, unless you pass in your own
})

myCache.name() // name of cache
myCache.ttl() // ttl of the cache
myCache.get(arg, fn, {cache_errors = false}) // gets a cloned value from the cache, using arg as a key. will perform function on arg if there is no value in cache, returns undefined if no function. If the function returns a promise, and the promise will hold an exception, the cache will wipe itself after the promise rejects.
myCache.set(arg, value, {cache_errors = true}) // sets a cloned value in cache under arg key. optionally, can choose to not cache errors, but default is to cache whatever is provided.
myCache.del(arg) // deletes an entry from the cache
myCache.keys() // arrays of entries
myCache.size() // how many entries
myCache.reset() // deletes all entries
myCache.prune() // deletes any entry older than ttl
0.0.4

8 months ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

4 years ago