@ipld/car
Version:
Content Addressable aRchive format reader and writer
67 lines • 2.64 kB
TypeScript
/**
* @typedef {import('./api').Block} Block
* @typedef {import('./api').BlockHeader} BlockHeader
* @typedef {import('./api').BlockIndex} BlockIndex
* @typedef {import('./coding').BytesBufferReader} BytesBufferReader
* @typedef {import('./coding').CarHeader} CarHeader
* @typedef {import('./coding').CarV2Header} CarV2Header
* @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader
*/
/**
* Reads header data from a `BytesReader`. The header may either be in the form
* of a `CarHeader` or `CarV2Header` depending on the CAR being read.
*
* @name decoder.readHeader(reader)
* @param {BytesBufferReader} reader
* @param {number} [strictVersion]
* @returns {CarHeader | CarV2Header}
*/
export function readHeader(reader: BytesBufferReader, strictVersion?: number | undefined): CarHeader | CarV2Header;
/**
* Reads the leading data of an individual block from CAR data from a
* `BytesBufferReader`. Returns a `BlockHeader` object which contains
* `{ cid, length, blockLength }` which can be used to either index the block
* or read the block binary data.
*
* @name async decoder.readBlockHead(reader)
* @param {BytesBufferReader} reader
* @returns {BlockHeader}
*/
export function readBlockHead(reader: BytesBufferReader): BlockHeader;
/**
* Returns Car header and blocks from a Uint8Array
*
* @param {Uint8Array} bytes
* @returns {{ header : CarHeader | CarV2Header , blocks: Block[]}}
*/
export function fromBytes(bytes: Uint8Array): {
header: CarHeader | CarV2Header;
blocks: Block[];
};
/**
* Creates a `BytesBufferReader` from a `Uint8Array`.
*
* @name decoder.bytesReader(bytes)
* @param {Uint8Array} bytes
* @returns {BytesBufferReader}
*/
export function bytesReader(bytes: Uint8Array): BytesBufferReader;
/**
* Wraps a `BytesBufferReader` in a limiting `BytesBufferReader` which limits maximum read
* to `byteLimit` bytes. It _does not_ update `pos` of the original
* `BytesBufferReader`.
*
* @name decoder.limitReader(reader, byteLimit)
* @param {BytesBufferReader} reader
* @param {number} byteLimit
* @returns {BytesBufferReader}
*/
export function limitReader(reader: BytesBufferReader, byteLimit: number): BytesBufferReader;
export type Block = import('./api').Block;
export type BlockHeader = import('./api').BlockHeader;
export type BlockIndex = import('./api').BlockIndex;
export type BytesBufferReader = import('./coding').BytesBufferReader;
export type CarHeader = import('./coding').CarHeader;
export type CarV2Header = import('./coding').CarV2Header;
export type CarV2FixedHeader = import('./coding').CarV2FixedHeader;
//# sourceMappingURL=buffer-decoder.d.ts.map