Files
notification-elements-demo/node_modules/thingies/lib/LruTtlMap.js
Giuliano Silvestro 5d0c9ec7eb Initial commit: notification-elements-demo app
Interactive Angular 19 demo for @sda/notification-elements-ui with
6 sections: Bell & Feed, Notification Center, Inbox, Comments &
Threads, Mention Input, and Full-Featured layout. Includes mock
data, dark mode toggle, and real-time event log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:49:19 +10:00

41 lines
1.0 KiB
JavaScript

"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;