UNPKG

@fireproof/database

Version:
62 lines (61 loc) 2.42 kB
import { CarReader } from '@ipld/car'; import { Transaction } from './transaction'; import type { AnyBlock, AnyCarHeader, AnyLink, BulkResult, CarCommit, DbCarHeader, DbMeta, FireproofOptions, IdxCarHeader, IdxMeta, IdxMetaMap } from './types'; import { CID } from 'multiformats'; import { CarStore, HeaderStore } from './store'; declare abstract class Loader { name: string; opts: FireproofOptions; headerStore: HeaderStore | undefined; carStore: CarStore | undefined; carLog: AnyLink[]; carReaders: Map<string, CarReader>; ready: Promise<AnyCarHeader>; key: string | undefined; keyId: string | undefined; static defaultHeader: AnyCarHeader; abstract defaultHeader: AnyCarHeader; constructor(name: string, opts?: FireproofOptions); commit(t: Transaction, done: IndexerResult | BulkResult, compact?: boolean): Promise<AnyLink>; getBlock(cid: CID): Promise<AnyBlock | undefined>; protected initializeStores(): Promise<void>; protected abstract makeCarHeader(_result: BulkResult | IndexerResult, _cars: AnyLink[], _compact: boolean): AnyCarHeader; protected loadCar(cid: AnyLink): Promise<CarReader>; protected ensureDecryptedReader(reader: CarReader): Promise<CarReader | { getRoots: () => AnyLink[]; get: (link: AnyLink) => Promise<AnyBlock | undefined>; }>; protected setKey(key: string): Promise<void>; protected ingestCarHeadFromMeta(meta: DbMeta | null): Promise<AnyCarHeader>; protected getMoreReaders(cids: AnyLink[]): Promise<void>; } export declare class DbLoader extends Loader { ready: Promise<DbCarHeader>; static defaultHeader: { cars: never[]; compact: never[]; head: never[]; }; defaultHeader: { cars: never[]; compact: never[]; head: never[]; }; protected makeCarHeader({ head }: BulkResult, cars: AnyLink[], compact?: boolean): DbCarHeader; } export declare class IdxLoader extends Loader { ready: Promise<IdxCarHeader>; static defaultHeader: { cars: never[]; compact: never[]; indexes: Map<string, IdxMeta>; }; defaultHeader: { cars: never[]; compact: never[]; indexes: Map<string, IdxMeta>; }; protected makeCarHeader({ indexes }: IndexerResult, cars: AnyLink[], compact?: boolean): IdxCarHeader; } type IndexerResult = CarCommit & IdxMetaMap; export {};