import { ok } from "@atcute/client"; import type { Cid, ResourceUri } from "@atcute/lexicons/syntax"; import type { BobbinContext } from "./client"; import { mainSchema as awaitRecordSchema } from "./lexicons/types/sh/tangled/bobbin/awaitRecord"; export interface RecordRevision { uri: ResourceUri; cid?: Cid; } export const awaitRecord = async (ctx: BobbinContext, revision: RecordRevision) => { return ok( ctx.xrpc.call(awaitRecordSchema, { params: { uri: revision.uri, ...(revision.cid ? { cid: revision.cid } : {}) } }) ); }; export const awaitIndexedRecord = async ( ctx: BobbinContext, revision: RecordRevision ): Promise => { const result = await awaitRecord(ctx, revision); if (result.status !== "indexed") { throw new Error(result.detail || result.reason || "Bobbin rejected the record."); } };