···
import { Client, simpleFetchHandler } from '@atcute/client'
import { findUserPDS, getUserDID } from './id-resolver.ts'
+
import { CommitType, Jetstream } from '@skyware/jetstream'
import { RepoReader } from '@atcute/car/v4'
import { decode } from '@atcute/cbor'
import { logger } from "./lib/logger.ts"
···
logger.info(`Inserting record ${link.rkey}`)
+
if (repoRev && repoRev != lastRev?.rkey) {
···
logger.info(`Backfilling ended`)
+
async setLastRevision(rkey: string, createdAt: string): Promise<void> {
+
async rollbackRevision(): Promise<void> {
+
const lastInsert = await db
+
.select(['rkey', 'createdAt'])
+
.orderBy('createdAt', 'desc')
+
if (lastInsert !== undefined) {
+
createdAt: lastInsert.createdAt
async jetstream(): Promise<Jetstream> {
const pds = await findUserPDS()
const jetstream = new Jetstream({
+
jetstream.on("commit", async (event) => {
+
if (event.commit.operation === CommitType.Create) {
+
const date = new Date()
+
await this.setLastRevision(event.commit.rev, date.toISOString())
+
if (event.commit.operation === CommitType.Delete) {
+
await this.rollbackRevision()
jetstream.onCreate('pet.mewsse.link', async (event) => {