UNPKG

@biconomy/abstractjs

Version:

SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.

43 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createHttpClient = void 0; const viem_1 = require("viem"); const parseErrorMessage_1 = require("../account/utils/parseErrorMessage.js"); const createHttpClient = (url, apiKey, isDebugMode = false) => { const request = async (requesParams) => { const { path, method = "POST", body, params, headers } = requesParams; const urlParams = params ? `?${new URLSearchParams(params)}` : ""; const fullPath = `${url}/${path}${urlParams}`; const result = await fetch(fullPath, { method, headers: { "Content-Type": "application/json", ...(apiKey ? { "x-api-key": apiKey } : {}), ...(headers ? { ...headers } : {}) }, ...(body ? { body: (0, viem_1.stringify)(body) } : {}) }); const json = (await result.json()); if (!result.ok) { const error = json?.error ?? json ?? result?.statusText ?? result; if (isDebugMode) console.error({ error }); throw new Error((0, parseErrorMessage_1.parseErrorMessage)(error)); } return json; }; const client = { request }; function extend(base) { return (extendFn) => { const extended = extendFn(base); for (const key in client) delete extended[key]; const combined = { ...base, ...extended }; return Object.assign(combined, { extend: extend(combined) }); }; } return Object.assign(client, { extend: extend(client) }); }; exports.createHttpClient = createHttpClient; exports.default = exports.createHttpClient; //# sourceMappingURL=createHttpClient.js.map