examples/live-notes Public
import type { Op } from "../../src/ops.ts";import { LOG_SIZE, type Note, type NoteStore } from "../../src/room.ts";// A NoteStore in memory, with the same trimming rule as the SQLite one.export class MemoryStore implements NoteStore { note: Note; log: { version: number; op: Op }[] = []; constructor(note: Note = { text: "", version: 0 }) { this.note = note; } load(): Note { return { ...this.note }; } opsSince(version: number): Op[] { return this.log.filter((e) => e.version > version).map((e) => e.op); } commit(note: Note, op: Op): void { this.note = { ...note }; this.log.push({ version: note.version, op }); this.log = this.log.filter((e) => e.version > note.version - LOG_SIZE); }}