CinemaPress/lib/CP_cache.js

49 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2019-10-01 21:34:02 +02:00
'use strict';
/**
* Node dependencies.
*/
var LRUCache = require('mnemonist/lru-cache');
var cache = new LRUCache(10000);
2019-10-01 21:34:02 +02:00
module.exports = {
2021-04-06 02:32:12 +02:00
set: function(hash, data, callback) {
2021-01-21 02:44:52 +01:00
if (!process.env['NO_CACHE']) {
cache.set(hash, data);
}
return callback();
},
get: function(hash, callback) {
2021-01-21 02:44:52 +01:00
return !process.env['NO_CACHE']
? callback(null, cache.get(hash))
: callback(null, undefined);
},
2021-05-02 00:24:50 +02:00
setSync: function(hash, data) {
if (!process.env['NO_CACHE']) {
cache.set(hash, data);
}
},
getSync: function(hash) {
return !process.env['NO_CACHE'] ? cache.get(hash) : undefined;
},
flush: function(callback) {
2021-04-06 02:32:12 +02:00
process.env.CP_VER = process.env.CP_VER
? parseInt(process.env.CP_VER) + 1
: new Date().getTime().toString();
Object.keys(require.cache).forEach(function(key) {
delete require.cache[key];
});
var config = require('../config/production/config');
Object.keys(config).length === 0 &&
(config = require('../config/production/config.backup'));
var modules = require('../config/production/modules');
Object.keys(modules).length === 0 &&
(modules = require('../config/production/modules.backup'));
process.env.CP_CONFIG_MD5 = require('md5')(JSON.stringify(config));
process.env.CP_MODULES_MD5 = require('md5')(JSON.stringify(modules));
cache.clear();
return callback();
}
};