UNPKG

@selfcommunity/api-services

Version:
82 lines (81 loc) 2.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCancelTokenSourceRequest = exports.formatHttpErrorCode = exports.formatHttpError = exports.defaultError = void 0; const tslib_1 = require("tslib"); const utils_1 = require("@selfcommunity/utils"); const axios_1 = tslib_1.__importDefault(require("axios")); function defaultError(error) { if (error.request) { // The request was made but no response was received // `error.request` is an instance of XMLHttpRequest in the browser and an instance of // http.ClientRequest in node.js console.log(error.request); } else { // Something happened in setting up the request that triggered an Error console.log('Error', error.message); } } exports.defaultError = defaultError; const formatError = (error) => { const errors = {}; if (Array.isArray(error)) { for (let i = 0; i < error.length; i++) { const err = error[i]; if (err.field) { errors[`${(0, utils_1.camelCase)(err.field)}Error`] = Array.isArray(err.messages) ? formatError(err.messages) : err.messages; } else { errors.error = err.message; } } } else { errors.error = error.errors; } return errors; }; function formatHttpError(error) { let errors = {}; if (error.response && error.response.data && typeof error.response.data === 'object' && error.response.data.errors) { errors = Object.assign({}, formatError(error.response.data.errors)); } else { defaultError(error); } return errors; } exports.formatHttpError = formatHttpError; const formatErrorCode = (error) => { const errors = {}; if (Array.isArray(error)) { for (let i = 0; i < error.length; i++) { const err = error[i]; if (err.field) { errors[`${(0, utils_1.camelCase)(err.field)}Error`] = Array.isArray(err.messages) ? formatErrorCode(err.messages) : err.messages; } else { errors.error = err.code; } } } else { errors.error = error.errors; } return errors; }; function formatHttpErrorCode(error) { let errors = {}; if (error.response && error.response.data && typeof error.response.data === 'object' && error.response.data.errors) { errors = Object.assign({}, formatErrorCode(error.response.data.errors)); } else { defaultError(error); } return errors; } exports.formatHttpErrorCode = formatHttpErrorCode; function getCancelTokenSourceRequest() { return axios_1.default.CancelToken.source(); } exports.getCancelTokenSourceRequest = getCancelTokenSourceRequest;