Backend Types
Backend
type Backend = { metadata: MetadataClient data: DataClient on_event?: EventHandler}MetadataClient
type MetadataClient = { get: (store_id: string, version: string) => Promise<Result<SnapshotMeta, CorpusError>> put: (meta: SnapshotMeta) => Promise<Result<void, CorpusError>> delete: (store_id: string, version: string) => Promise<Result<void, CorpusError>> list: (store_id: string, opts?: ListOpts) => AsyncIterable<SnapshotMeta> get_latest: (store_id: string) => Promise<Result<SnapshotMeta, CorpusError>> get_children: (parent_store_id: string, parent_version: string) => AsyncIterable<SnapshotMeta> find_by_hash: (store_id: string, content_hash: string) => Promise<SnapshotMeta | null>}DataClient
type DataClient = { get: (data_key: string) => Promise<Result<DataHandle, CorpusError>> put: (data_key: string, data: ReadableStream<Uint8Array> | Uint8Array) => Promise<Result<void, CorpusError>> delete: (data_key: string) => Promise<Result<void, CorpusError>> exists: (data_key: string) => Promise<boolean>}DataHandle
type DataHandle = { stream: () => ReadableStream<Uint8Array> bytes: () => Promise<Uint8Array>}CorpusEvent
type CorpusEvent = | { type: 'meta_get'; store_id: string; version: string; found: boolean } | { type: 'meta_put'; store_id: string; version: string } | { type: 'meta_delete'; store_id: string; version: string } | { type: 'meta_list'; store_id: string; count: number } | { type: 'data_get'; store_id: string; version: string; found: boolean } | { type: 'data_put'; store_id: string; version: string; size_bytes: number; deduplicated: boolean } | { type: 'snapshot_put'; store_id: string; version: string; content_hash: string; deduplicated: boolean } | { type: 'snapshot_get'; store_id: string; version: string; found: boolean } | { type: 'error'; error: CorpusError }
type EventHandler = (event: CorpusEvent) => voidConfiguration Types
type MemoryBackendOptions = { on_event?: EventHandler }
type FileBackendConfig = { base_path: string; on_event?: EventHandler }
type CloudflareBackendConfig = { d1: D1Database; r2: R2Bucket; on_event?: EventHandler }
type LayeredBackendOptions = { read: Backend[]; write: Backend[]; list_strategy?: 'merge' | 'first' }