"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.InMemoryCache = void 0; const DEFAULT_CACHE_TTL = 5 * 1000; class InMemoryCache { constructor({ ttl = DEFAULT_CACHE_TTL }) { this.ttl = ttl; this.cache = Object.create(null); } get(key) { const record = this.cache[key]; if (record == null) { return null; } // Has Record and isnt expired if (isNaN(record.expire) || record.expire >= Date.now()) { return record.value; } // Record has expired delete this.cache[key]; return null; } put(key, value, ttl = this.ttl) { if (ttl < 0 || isNaN(ttl)) { ttl = NaN; } var record = { value: value, expire: ttl + Date.now() }; if (!isNaN(record.expire)) { record.timeout = setTimeout(() => { this.del(key); }, ttl); } this.cache[key] = record; } del(key) { var record = this.cache[key]; if (record == null) { return; } if (record.timeout) { clearTimeout(record.timeout); } delete this.cache[key]; } clear() { this.cache = Object.create(null); } } exports.InMemoryCache = InMemoryCache; var _default = exports.default = InMemoryCache; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX0NBQ0hFX1RUTCIsIkluTWVtb3J5Q2FjaGUiLCJjb25zdHJ1Y3RvciIsInR0bCIsImNhY2hlIiwiT2JqZWN0IiwiY3JlYXRlIiwiZ2V0Iiwia2V5IiwicmVjb3JkIiwiaXNOYU4iLCJleHBpcmUiLCJEYXRlIiwibm93IiwidmFsdWUiLCJwdXQiLCJOYU4iLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImRlbCIsImNsZWFyVGltZW91dCIsImNsZWFyIiwiZXhwb3J0cyIsIl9kZWZhdWx0IiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9Jbk1lbW9yeUNhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERFRkFVTFRfQ0FDSEVfVFRMID0gNSAqIDEwMDA7XG5cbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUNhY2hlIHtcbiAgY29uc3RydWN0b3IoeyB0dGwgPSBERUZBVUxUX0NBQ0hFX1RUTCB9KSB7XG4gICAgdGhpcy50dGwgPSB0dGw7XG4gICAgdGhpcy5jYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cblxuICBnZXQoa2V5KSB7XG4gICAgY29uc3QgcmVjb3JkID0gdGhpcy5jYWNoZVtrZXldO1xuICAgIGlmIChyZWNvcmQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gSGFzIFJlY29yZCBhbmQgaXNudCBleHBpcmVkXG4gICAgaWYgKGlzTmFOKHJlY29yZC5leHBpcmUpIHx8IHJlY29yZC5leHBpcmUgPj0gRGF0ZS5ub3coKSkge1xuICAgICAgcmV0dXJuIHJlY29yZC52YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBSZWNvcmQgaGFzIGV4cGlyZWRcbiAgICBkZWxldGUgdGhpcy5jYWNoZVtrZXldO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHV0KGtleSwgdmFsdWUsIHR0bCA9IHRoaXMudHRsKSB7XG4gICAgaWYgKHR0bCA8IDAgfHwgaXNOYU4odHRsKSkge1xuICAgICAgdHRsID0gTmFOO1xuICAgIH1cblxuICAgIHZhciByZWNvcmQgPSB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBleHBpcmU6IHR0bCArIERhdGUubm93KCksXG4gICAgfTtcblxuICAgIGlmICghaXNOYU4ocmVjb3JkLmV4cGlyZSkpIHtcbiAgICAgIHJlY29yZC50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVsKGtleSk7XG4gICAgICB9LCB0dGwpO1xuICAgIH1cblxuICAgIHRoaXMuY2FjaGVba2V5XSA9IHJlY29yZDtcbiAgfVxuXG4gIGRlbChrZXkpIHtcbiAgICB2YXIgcmVjb3JkID0gdGhpcy5jYWNoZVtrZXldO1xuICAgIGlmIChyZWNvcmQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZWNvcmQudGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHJlY29yZC50aW1lb3V0KTtcbiAgICB9XG4gICAgZGVsZXRlIHRoaXMuY2FjaGVba2V5XTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEluTWVtb3J5Q2FjaGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLGlCQUFpQixHQUFHLENBQUMsR0FBRyxJQUFJO0FBRTNCLE1BQU1DLGFBQWEsQ0FBQztFQUN6QkMsV0FBV0EsQ0FBQztJQUFFQyxHQUFHLEdBQUdIO0VBQWtCLENBQUMsRUFBRTtJQUN2QyxJQUFJLENBQUNHLEdBQUcsR0FBR0EsR0FBRztJQUNkLElBQUksQ0FBQ0MsS0FBSyxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7RUFDbEM7RUFFQUMsR0FBR0EsQ0FBQ0MsR0FBRyxFQUFFO0lBQ1AsTUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0wsS0FBSyxDQUFDSSxHQUFHLENBQUM7SUFDOUIsSUFBSUMsTUFBTSxJQUFJLElBQUksRUFBRTtNQUNsQixPQUFPLElBQUk7SUFDYjs7SUFFQTtJQUNBLElBQUlDLEtBQUssQ0FBQ0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsSUFBSUYsTUFBTSxDQUFDRSxNQUFNLElBQUlDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFBRTtNQUN2RCxPQUFPSixNQUFNLENBQUNLLEtBQUs7SUFDckI7O0lBRUE7SUFDQSxPQUFPLElBQUksQ0FBQ1YsS0FBSyxDQUFDSSxHQUFHLENBQUM7SUFDdEIsT0FBTyxJQUFJO0VBQ2I7RUFFQU8sR0FBR0EsQ0FBQ1AsR0FBRyxFQUFFTSxLQUFLLEVBQUVYLEdBQUcsR0FBRyxJQUFJLENBQUNBLEdBQUcsRUFBRTtJQUM5QixJQUFJQSxHQUFHLEdBQUcsQ0FBQyxJQUFJTyxLQUFLLENBQUNQLEdBQUcsQ0FBQyxFQUFFO01BQ3pCQSxHQUFHLEdBQUdhLEdBQUc7SUFDWDtJQUVBLElBQUlQLE1BQU0sR0FBRztNQUNYSyxLQUFLLEVBQUVBLEtBQUs7TUFDWkgsTUFBTSxFQUFFUixHQUFHLEdBQUdTLElBQUksQ0FBQ0MsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUNILEtBQUssQ0FBQ0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRTtNQUN6QkYsTUFBTSxDQUFDUSxPQUFPLEdBQUdDLFVBQVUsQ0FBQyxNQUFNO1FBQ2hDLElBQUksQ0FBQ0MsR0FBRyxDQUFDWCxHQUFHLENBQUM7TUFDZixDQUFDLEVBQUVMLEdBQUcsQ0FBQztJQUNUO0lBRUEsSUFBSSxDQUFDQyxLQUFLLENBQUNJLEdBQUcsQ0FBQyxHQUFHQyxNQUFNO0VBQzFCO0VBRUFVLEdBQUdBLENBQUNYLEdBQUcsRUFBRTtJQUNQLElBQUlDLE1BQU0sR0FBRyxJQUFJLENBQUNMLEtBQUssQ0FBQ0ksR0FBRyxDQUFDO0lBQzVCLElBQUlDLE1BQU0sSUFBSSxJQUFJLEVBQUU7TUFDbEI7SUFDRjtJQUVBLElBQUlBLE1BQU0sQ0FBQ1EsT0FBTyxFQUFFO01BQ2xCRyxZQUFZLENBQUNYLE1BQU0sQ0FBQ1EsT0FBTyxDQUFDO0lBQzlCO0lBQ0EsT0FBTyxJQUFJLENBQUNiLEtBQUssQ0FBQ0ksR0FBRyxDQUFDO0VBQ3hCO0VBRUFhLEtBQUtBLENBQUEsRUFBRztJQUNOLElBQUksQ0FBQ2pCLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDO0VBQ2xDO0FBQ0Y7QUFBQ2dCLE9BQUEsQ0FBQXJCLGFBQUEsR0FBQUEsYUFBQTtBQUFBLElBQUFzQixRQUFBLEdBQUFELE9BQUEsQ0FBQUUsT0FBQSxHQUVjdkIsYUFBYSIsImlnbm9yZUxpc3QiOltdfQ==