UNPKG

skyflow-node

Version:
99 lines 5.52 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _Client_metaData; Object.defineProperty(exports, "__esModule", { value: true }); const SkyflowError_1 = __importDefault(require("../libs/SkyflowError")); const logs_1 = __importDefault(require("../utils/logs")); const logs_helper_1 = require("../utils/logs-helper"); const common_1 = require("../utils/common"); const axios_1 = __importDefault(require("axios")); const helpers_1 = require("../utils/helpers"); class Client { constructor(config, metadata) { _Client_metaData.set(this, void 0); this.convertRequestBody = (body, contentType) => { if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(common_1.ContentType.FORMURLENCODED)) { const qs = require('qs'); return qs.stringify(body); } else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(common_1.ContentType.FORMDATA)) { return (0, helpers_1.objectToFormData)(body); } else { return JSON.stringify(Object.assign({}, body)); } }; this.getHeaders = (data, headerKeys) => { if (headerKeys['content-type'] === "multipart/form-data") { return Object.assign(Object.assign({}, headerKeys), data.getHeaders()); } else { return Object.assign({}, headerKeys); } }; this.request = (request) => new Promise((resolve, reject) => { const headerKeys = (0, helpers_1.toLowerKeys)(request.headers); let contentType = headerKeys['content-type']; headerKeys[common_1.SDK_METRICS_HEADER_KEY] = JSON.stringify((0, helpers_1.generateSDKMetrics)()); const data = this.convertRequestBody(request.body, contentType); const headers = this.getHeaders(data, headerKeys); (0, axios_1.default)({ method: request.requestMethod, url: request.url, data: data, headers: this.getHeaders(data, headerKeys) }).then((res) => { let requestId = res.headers['x-request-id']; resolve({ data: res.data, metadata: { requestId } }); }).catch((err) => { this.failureResponse(err).catch((err) => reject(err)); }); }); this.failureResponse = (err) => new Promise((_, reject) => { var _a, _b, _c, _d, _e; const contentType = (_a = err.response) === null || _a === void 0 ? void 0 : _a.headers['content-type']; const data = err.response.data; const requestId = (_b = err.response) === null || _b === void 0 ? void 0 : _b.headers['x-request-id']; if (contentType && contentType.includes('application/json')) { let description = JSON.parse(JSON.stringify(data)); if ((_c = description === null || description === void 0 ? void 0 : description.error) === null || _c === void 0 ? void 0 : _c.message) { description = requestId ? `${(_d = description === null || description === void 0 ? void 0 : description.error) === null || _d === void 0 ? void 0 : _d.message} - requestId: ${requestId}` : (_e = description === null || description === void 0 ? void 0 : description.error) === null || _e === void 0 ? void 0 : _e.message; } (0, logs_helper_1.printLog)(description, common_1.MessageType.ERROR); reject(new SkyflowError_1.default({ code: err.response.status, description, }, [], true)); } else if (contentType && contentType.includes('text/plain')) { let description = requestId ? `${data} - requestId: ${requestId}` : data; (0, logs_helper_1.printLog)(description, common_1.MessageType.ERROR); reject(new SkyflowError_1.default({ code: err.response.status, description, }, [], true)); } else { let description = requestId ? `${logs_1.default.errorLogs.ERROR_OCCURED} - requestId: ${requestId}` : logs_1.default.errorLogs.ERROR_OCCURED; (0, logs_helper_1.printLog)(description, common_1.MessageType.ERROR); reject(new SkyflowError_1.default({ code: err.response.status, description, }, [], true)); } }); this.config = config; __classPrivateFieldSet(this, _Client_metaData, metadata, "f"); } } _Client_metaData = new WeakMap(); exports.default = Client; //# sourceMappingURL=index.js.map