ipfs-http-client
Version:
A client library for the IPFS HTTP API
27 lines • 886 B
JavaScript
import { CID } from 'multiformats/cid';
import { configure } from '../lib/configure.js';
import { toUrlSearchParams } from '../lib/to-url-search-params.js';
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
export const createGet = configure(api => {
async function get(cid, options = {}) {
const res = await api.post('object/get', {
signal: options.signal,
searchParams: toUrlSearchParams({
arg: `${ cid instanceof Uint8Array ? CID.decode(cid) : cid }`,
dataEncoding: 'base64',
...options
}),
headers: options.headers
});
const data = await res.json();
return {
Data: uint8ArrayFromString(data.Data, 'base64pad'),
Links: (data.Links || []).map(link => ({
Name: link.Name,
Hash: CID.parse(link.Hash),
Tsize: link.Size
}))
};
}
return get;
});