UNPKG

@atproto/repo

Version:

atproto repo and MST implementation

29 lines 929 B
import { decode } from '@atproto/lex-cbor'; import { MissingBlockError, UnexpectedObjectError } from './error.js'; import { cborToLexRecord } from './util.js'; export const getAndParseRecord = async (blocks, cid) => { const bytes = blocks.get(cid); if (!bytes) { throw new MissingBlockError(cid, 'record'); } const record = cborToLexRecord(bytes); return { record, bytes }; }; export const getAndParseByDef = async (blocks, cid, def) => { const bytes = blocks.get(cid); if (!bytes) { throw new MissingBlockError(cid, def.name); } return parseObjByDef(bytes, cid, def); }; export const parseObjByDef = (bytes, cid, def) => { const obj = decode(bytes); const res = def.schema.safeParse(obj); if (res.success) { return { obj: res.data, bytes }; } else { throw new UnexpectedObjectError(cid, def.name); } }; //# sourceMappingURL=parse.js.map