UNPKG

kubo-rpc-client-esm-cjs

Version:
48 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.textToUrlSafeRpc = exports.rpcToBigInt = exports.rpcToBytes = exports.rpcToText = exports.rpcArrayToTextArray = void 0; const from_string_1 = require("uint8arrays/from-string"); const to_string_1 = require("uint8arrays/to-string"); const base64_1 = require("multiformats/bases/base64"); /* HTTP RPC: * - wraps binary data in multibase. base64url is used to avoid issues * when a binary data is passed as search param in URL. * Historical context: https://github.com/ipfs/go-ipfs/issues/7939 * Multibase wrapping introduced in: https://github.com/ipfs/go-ipfs/pull/8183 */ /** * @param {Array<string>} strings * @returns {Array<string>} strings */ const rpcArrayToTextArray = strings => { if (Array.isArray(strings)) { return strings.map(rpcToText); } return strings; }; exports.rpcArrayToTextArray = rpcArrayToTextArray; /** * @param {string} mb * @returns {string} */ const rpcToText = mb => (0, to_string_1.toString)(rpcToBytes(mb)); exports.rpcToText = rpcToText; /** * @param {string} mb * @returns {Uint8Array} */ const rpcToBytes = mb => base64_1.base64url.decode(mb); exports.rpcToBytes = rpcToBytes; /** * @param {string} mb * @returns {bigint} */ const rpcToBigInt = mb => BigInt(`0x${(0, to_string_1.toString)(base64_1.base64url.decode(mb), 'base16')}`); exports.rpcToBigInt = rpcToBigInt; /** * @param {string} text * @returns {string} */ const textToUrlSafeRpc = text => base64_1.base64url.encode((0, from_string_1.fromString)(text)); exports.textToUrlSafeRpc = textToUrlSafeRpc; //# sourceMappingURL=http-rpc-wire-format.js.map