kubo-rpc-client
Version:
A client library for the Kubo RPC API
126 lines • 3.25 kB
TypeScript
import type { HTTPRPCOptions } from '../index.js';
import type { HTTPRPCClient } from '../lib/core.js';
import type { CID, Version } from 'multiformats/cid';
export interface BlockPutOptions extends HTTPRPCOptions {
/**
* The codec to use to create the CID
*/
format?: string;
/**
* Multihash hashing algorithm to use. (Defaults to 'sha2-256')
*/
mhtype?: string;
/**
* The version to use to create the CID
*/
version?: Version;
/**
* Pin this block when adding. (Defaults to `false`)
*/
pin?: boolean;
/**
* Allow creating blocks larger than 1MB
*
* @default false
*/
allowBigBlock?: boolean;
}
export interface BlockRmOptions extends HTTPRPCOptions {
/**
* Ignores non-existent blocks
*/
force?: boolean;
/**
* Do not return output if true
*/
quiet?: boolean;
}
export interface BlockRmResult {
/**
* The CID of the removed block
*/
cid: CID;
/**
* Any error that occurred while trying to remove the block
*/
error?: Error;
}
export interface BlockStatResult {
/**
* The CID of the block
*/
cid: CID;
/**
* The size of the block
*/
size: number;
}
export interface BlockAPI {
/**
* Get a raw IPFS block
*
* @example
*
* ```js
* const block = await ipfs.block.get(cid)
* console.log(block)
* ```
*/
get(cid: CID, options?: HTTPRPCOptions): Promise<Uint8Array>;
/**
* Stores a Uint8Array as a block in the underlying blockstore
*
* @example
*
* ```js
* import * as dagPB from '@ipld/dag-pb'
* // Defaults
* const encoder = new TextEncoder()
* const decoder = new TextDecoder()
*
* const bytes = encoder.encode('a serialized object')
* const cid = await ipfs.block.put(bytes)
*
* console.log(decoder.decode(block.data))
* // Logs:
* // a serialized object
* console.log(block.cid.toString())
* // Logs:
* // the CID of the object
* ```
*/
put(block: Uint8Array, options?: BlockPutOptions): Promise<CID>;
/**
* Remove one or more IPFS block(s) from the underlying block store
*
* @example
*
* ```js
* for await (const result of ipfs.block.rm(cid)) {
* if (result.error) {
* console.error(`Failed to remove block ${result.cid} due to ${result.error.message}`)
* } else {
* console.log(`Removed block ${result.cid}`)
* }
* }
* ```
*/
rm(cid: CID | CID[], options?: BlockRmOptions): AsyncIterable<BlockRmResult>;
/**
* Print information of a raw IPFS block
*
* @example
*
* ```js
* const cid = CID.parse('QmQULBtTjNcMwMr4VMNknnVv3RpytrLSdgpvMcTnfNhrBJ')
* const stats = await ipfs.block.stat(cid)
* console.log(stats.cid.toString())
* // Logs: QmQULBtTjNcMwMr4VMNknnVv3RpytrLSdgpvMcTnfNhrBJ
* console.log(stat.size)
* // Logs: 3739
* ```
*/
stat(cid: CID, options?: HTTPRPCOptions): Promise<BlockStatResult>;
}
export declare function createBlock(client: HTTPRPCClient): BlockAPI;
//# sourceMappingURL=index.d.ts.map