@codex-storage/sdk-js
Version:
Codex SDK to interact with the Codex decentralized storage network.
74 lines (71 loc) • 1.73 kB
JavaScript
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