PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/@polkadot/api-derive/cjs/util
Просмотр файла: cache.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.deriveCache = void 0;
exports.setDeriveCache = setDeriveCache;
const cacheImpl_js_1 = require("./cacheImpl.js");
const CACHE_EXPIRY = 7 * (24 * 60) * (60 * 1000);
let deriveCache;
function wrapCache(keyStart, cache) {
return {
del: (partial) => cache.del(`${keyStart}${partial}`),
forEach: cache.forEach,
get: (partial) => {
const key = `${keyStart}${partial}`;
const cached = cache.get(key);
if (cached) {
cached.x = Date.now();
cache.set(key, cached);
return cached.v;
}
return undefined;
},
set: (partial, v) => {
cache.set(`${keyStart}${partial}`, { v, x: Date.now() });
}
};
}
function clearCache(cache) {
// clear all expired values
const now = Date.now();
const all = [];
cache.forEach((key, { x }) => {
((now - x) > CACHE_EXPIRY) && all.push(key);
});
// don't do delete inside loop, just in-case
all.forEach((key) => cache.del(key));
}
function setDeriveCache(prefix = '', cache) {
exports.deriveCache = deriveCache = cache
? wrapCache(`derive:${prefix}:`, cache)
: cacheImpl_js_1.deriveNoopCache;
if (cache) {
clearCache(cache);
}
}
setDeriveCache();
Выполнить команду
Для локальной разработки. Не используйте в интернете!