12345678910111213141516171819202122232425262728293031323334353637383940 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LruTtlMap = void 0;
- const LruMap_1 = require("./LruMap");
- class LruTtlMap extends LruMap_1.LruMap {
- constructor() {
- super(...arguments);
- this.expiry = new Map();
- }
- clear() {
- this.expiry.clear();
- super.clear();
- }
- delete(key) {
- this.expiry.delete(key);
- return super.delete(key);
- }
- has(key, now = 0) {
- if (!super.has(key))
- return false;
- const expiry = this.expiry.get(key) || 0;
- const expired = now > expiry;
- if (expired)
- this.delete(key);
- return !expired;
- }
- get(key, now) {
- if (!this.has(key, now))
- return undefined;
- const value = super.get(key);
- super.set(key, value);
- return value;
- }
- set(key, value, expiry = Infinity) {
- super.set(key, value);
- this.expiry.set(key, expiry);
- return this;
- }
- }
- exports.LruTtlMap = LruTtlMap;
|