unpkg/server/utils/createCache.js

33 lines
609 B
JavaScript

const db = require("./cache");
/**
* A persistent cache for JSON values, using Redis.
*/
function createCache(keyPrefix) {
function createKey(key) {
return keyPrefix + "-" + key;
}
function set(key, value, expiry, callback) {
db.setex(createKey(key), expiry, JSON.stringify(value), callback);
}
function get(key, callback) {
db.get(createKey(key), (error, value) => {
callback(error, value && JSON.parse(value));
});
}
function del(key, callback) {
db.del(createKey(key), callback);
}
return {
set,
get,
del
};
}
module.exports = createCache;