@nslibs/cache-manager

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

Usage no npm install needed!

<script type="module">
  import nslibsCacheManager from 'https://cdn.skypack.dev/@nslibs/cache-manager';
</script>

README

CacheManager

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

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) // 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
myCache.set(arg, value) // sets a cloned value in cache under arg key
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