import type { Log, Cache } from "../index.js" export class LogStore implements Cache.LogCache { #logs: Map = new Map #users: Set = new Set has(handle: string): ReturnType { return this.#logs.has(handle) } update(logs: Set): ReturnType { const future = new Map const users = new Set const result = { updated: new Set, deleted: new Set } for (const log of logs) { future.set(log.user.handle, log) users.add(log.user.handle) if (this.#logs.get(log.user.handle)?.timestamp.getTime() !== log.timestamp.getTime()) result.updated.add(log) } result.deleted = this.#users.difference(users) this.#users = users this.#logs = future return result } }