use LRUSet to skip already seen event processing

This commit is contained in:
Martti Malmi
2024-01-04 10:36:23 +02:00
parent c2899eac26
commit 287ce32690
5 changed files with 21 additions and 1 deletions

View File

@ -0,0 +1,23 @@
export default class LRUSet<T> {
private set = new Set<T>();
private limit: number;
constructor(limit: number) {
this.limit = limit;
}
add(item: T) {
if (this.set.size >= this.limit) {
this.set.delete(this.set.values().next().value);
}
this.set.add(item);
}
has(item: T) {
return this.set.has(item);
}
values() {
return this.set.values();
}
}