UNPKG

@codex-storage/sdk-js

Version:

Codex SDK to interact with the Codex decentralized storage network.

81 lines (74 loc) 2.18 kB
'use strict'; require('valibot'); var Undici = require('undici'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var Undici__default = /*#__PURE__*/_interopDefault(Undici); // src/errors/errors.ts var CodexError = class extends Error { code; errors; sourceStack; constructor(message, { code, errors, sourceStack } = {}) { super(message); this.code = code || null; this.errors = errors || null; this.sourceStack = sourceStack || null; } }; // src/fetch-safe/fetch-safe.ts var FetchAuthBuilder = { build(auth) { if (auth == null ? void 0 : auth.basic) { return { Authorization: "Basic " + auth.basic }; } return {}; } }; // src/data/node-upload.ts var NodeUploadStategy = class { body; metadata; abortController; constructor(body, metadata) { this.body = body; this.metadata = metadata; } async upload(url, { auth }) { var _a, _b, _c, _d; const headers = FetchAuthBuilder.build(auth); if ((_a = this.metadata) == null ? void 0 : _a.filename) { headers["Content-Disposition"] = 'attachment; filename="' + ((_b = this.metadata) == null ? void 0 : _b.filename) + '"'; } if ((_c = this.metadata) == null ? void 0 : _c.mimetype) { headers["Content-Type"] = (_d = this.metadata) == null ? void 0 : _d.mimetype; } const controller = new AbortController(); this.abortController = controller; const res = await Undici__default.default.request(url, { method: "POST", headers, body: this.body, signal: controller.signal }); if (res.statusCode < 200 || res.statusCode >= 300) { const msg = `The status code is invalid got ${res.statusCode} - ${await res.body.text()} `; return { error: true, data: new CodexError(msg, { code: res.statusCode }) }; } return { error: false, data: await res.body.text() }; } abort() { var _a; try { (_a = this.abortController) == null ? void 0 : _a.abort(); } catch (_) { } } }; exports.NodeUploadStategy = NodeUploadStategy; //# sourceMappingURL=node.js.map //# sourceMappingURL=node.js.map