UNPKG

ice.fo.utils

Version:

34 lines (31 loc) 786 B
const NodeCache = require('node-cache') module.exports = function createServerCache ({ ttl = 60 * 5 /* 5 minutes */, ttlByKeys = {} }) { const store = new NodeCache({ stdTTL: ttl, // seconds }) const configurableKeyNames = Object.keys(ttlByKeys) return { put ({ key, value, seconds }) { if (!seconds && seconds != 0) { const keyName = configurableKeyNames.find(i => key.startsWith(i)) seconds = ttlByKeys[keyName] } store.set(key, value, seconds) }, get ({ key }) { return store.get(key) }, remove ({ key }) { return store.del(key) }, removeAll () { return store.flushAll() }, has ({ key }) { return store.has(key) }, getKeys () { return store.keys() }, } }