Something went wrong. Try again.
Logiverse library. (beta)
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233import type { Log, Cache } from "../index.js"
export class LogStore implements Cache.LogCache { #logs: Map<string, Log> = new Map #users: Set<string> = new Set
has(handle: string): ReturnType<Cache.LogCache['has']> { return this.#logs.has(handle) }
update(logs: Set<Log>): ReturnType<Cache.LogCache['update']> { const future = new Map<string, Log> const users = new Set<string> const result = { updated: new Set<Log>, deleted: new Set<string> }
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 }}