enkanetwork
Version:
API wrapper for enka.network written on TypeScript which provides localization, caching and convenience
27 lines (26 loc) • 817 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CacheManager = void 0;
class CacheManager {
data;
constructor({ checkPeriod = 20, } = {}) {
this.data = {};
setInterval(() => {
for (const [key, value] of Object.entries(this.data)) {
if (value && Date.now() > value?.expiredAt) {
delete this.data[key];
}
}
}, checkPeriod * 1000);
}
async set(key, data, ttl) {
this.data[key] = { data, expiredAt: Date.now() + ttl * 1000 };
}
async get(key) {
const storageKey = this.data[key];
if (!storageKey || Date.now() > storageKey.expiredAt)
return null;
return storageKey.data;
}
}
exports.CacheManager = CacheManager;