kubo-rpc-client-esm-cjs
Version:
A client library for the Kubo RPC API
57 lines • 2.75 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createGet = void 0;
const configure_js_1 = require("../lib/configure.js");
const resolve_js_1 = require("../lib/resolve.js");
const it_first_1 = __importDefault(require("it-first"));
const it_last_1 = __importDefault(require("it-last"));
const err_code_1 = __importDefault(require("err-code"));
const get_js_1 = require("../block/get.js");
/**
* @param {import('../types').Multicodecs} codecs
* @param {import('../types').Options} options
*/
const createGet = (codecs, options) => {
const fn = (0, configure_js_1.configure)((api, opts) => {
const getBlock = (0, get_js_1.createGet)(opts);
/**
* @type {import('../types').DAGAPI["get"]}
*/
const get = (cid, options = {}) => __awaiter(void 0, void 0, void 0, function* () {
if (options.path) {
const entry = options.localResolve
? yield (0, it_first_1.default)((0, resolve_js_1.resolve)(cid, options.path, codecs, getBlock, options))
: yield (0, it_last_1.default)((0, resolve_js_1.resolve)(cid, options.path, codecs, getBlock, options));
/** @type {import('../types').GetResult | undefined} - first and last will return undefined when empty */
const result = (entry);
if (!result) {
throw (0, err_code_1.default)(new Error('Not found'), 'ERR_NOT_FOUND');
}
return result;
}
const codec = yield codecs.getCodec(cid.code);
const block = yield getBlock(cid, options);
const node = codec.decode(block);
return {
value: node,
remainderPath: ''
};
});
return get;
});
return fn(options);
};
exports.createGet = createGet;
//# sourceMappingURL=get.js.map