import { Jetstream } from "@skyware/jetstream"; import { deleteNote, upsertNote } from "./src/data/db.ts"; import { Note } from "./src/data/note.ts"; import { log } from "./src/log.ts"; const jetstream = new Jetstream({ wantedCollections: ["space.remanso.note"], }); jetstream.onCreate("space.remanso.note", (event) => { const { did, commit: { rkey, record } } = event; const note = record as unknown as Omit log(`[jetstream] create ${did}/${rkey}: ${note.title}`); upsertNote({ did, rkey, ...note, }); }); jetstream.onUpdate("space.remanso.note", (event) => { const { did, commit: { rkey, record } } = event; const note = record as unknown as Omit log(`[jetstream] update ${did}/${rkey}: ${note.title}, published at ${note.publishedAt}`); upsertNote({ did, rkey, ...note, }); }); jetstream.onDelete("space.remanso.note", (event) => { const { did, commit: { rkey } } = event; log(`[jetstream] delete ${did}/${rkey}`); deleteNote({ did, rkey }); }); jetstream.on("close", () => { log("[jetstream] connection closed"); }); jetstream.on("error", (error) => { log("[jetstream] connection closed with error", error); }); log("[jetstream] launching"); jetstream.start();