UNPKG

@ipld/car

Version:

Content Addressable aRchive format reader and writer

49 lines 1.4 kB
import type { Block, BlockIndex } from './api.js'; import type { CID } from 'multiformats/cid'; export interface CarEncoder { setRoots(roots: CID[]): Promise<void>; writeBlock(block: Block): Promise<void>; close(): Promise<void>; version(): number; } export interface IteratorChannel_Writer<T> { write(chunk: T): Promise<void>; end(): Promise<void>; } export interface IteratorChannel<T> { writer: IteratorChannel_Writer<T>; iterator: AsyncIterator<T>; } export interface CarHeader { version: 1; roots: CID[]; } export interface CarV2FixedHeader { characteristics: [bigint, bigint]; dataOffset: number; dataSize: number; indexOffset: number; } export interface CarV2Header extends CarV2FixedHeader { version: 2; roots: CID[]; } export interface CarDecoder { header(): Promise<CarHeader | CarV2Header>; blocks(): AsyncGenerator<Block>; blocksIndex(): AsyncGenerator<BlockIndex>; } export interface Seekable { seek(length: number): void; } export interface BytesReader extends Seekable { upTo(length: number): Promise<Uint8Array>; exactly(length: number, seek?: boolean): Promise<Uint8Array>; pos: number; } export interface BytesBufferReader extends Seekable { upTo(length: number): Uint8Array; exactly(length: number, seek?: boolean): Uint8Array; pos: number; } //# sourceMappingURL=coding.d.ts.map