UNPKG

@codex-storage/sdk-js

Version:

Codex SDK to interact with the Codex decentralized storage network.

74 lines (71 loc) 1.73 kB
import { CodexError } from './chunk-MVZZ6JVF.mjs'; // src/promise-safe/promise-safe.ts var Promises = { async safe(promise) { try { const result = await promise(); return { error: false, data: result }; } catch (e) { return { error: true, data: new CodexError(e instanceof Error ? e.message : "" + e, { sourceStack: e instanceof Error ? e.stack || null : null }) }; } } }; // src/fetch-safe/fetch-safe.ts var FetchAuthBuilder = { build(auth) { if (auth == null ? void 0 : auth.basic) { return { Authorization: "Basic " + auth.basic }; } return {}; } }; var Fetch = { async safe(url, init) { const res = await Promises.safe(() => fetch(url, init)); if (res.error) { return { error: true, data: new CodexError(res.data.message, { code: 502 }) }; } if (!res.data.ok) { const message = await Promises.safe(() => res.data.text()); if (message.error) { return message; } return { error: true, data: new CodexError(message.data, { code: res.data.status }) }; } return { error: false, data: res.data }; }, async safeJson(url, init) { const res = await this.safe(url, init); if (res.error) { return res; } return Promises.safe(() => res.data.json()); }, async safeText(url, init) { const res = await this.safe(url, init); if (res.error) { return res; } return Promises.safe(() => res.data.text()); } }; export { Fetch, FetchAuthBuilder }; //# sourceMappingURL=chunk-2VOCE3TZ.mjs.map //# sourceMappingURL=chunk-2VOCE3TZ.mjs.map