UNPKG

@widergy/web-utils

Version:
91 lines (90 loc) 3.39 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.existsErrorCodes = exports.existsErrorCode = exports.getErrorMessage = exports.responseErrorTransform = exports.getResponseError = void 0; const errorCodes_1 = __importDefault(require("./constants/errorCodes")); const string_1 = require("./string"); const array_1 = require("./array"); const createErrorStructure = ({ code, status, message, meta }) => ({ errors: [{ code, status, message, meta }] }); const getResponseError = (response) => { if (response.data) return response.data; if (response.status === 404) { return createErrorStructure({ code: errorCodes_1.default.NOT_FOUND, status: response.status }); } if (response.status === 504) { return createErrorStructure({ code: errorCodes_1.default.GATEWAY_TIMEOUT, status: response.status }); } return 'undefined error'; }; exports.getResponseError = getResponseError; const responseErrorTransform = (response) => { if (!response.ok && !response.error) { response.error = (0, exports.getResponseError)(response); } }; exports.responseErrorTransform = responseErrorTransform; const getErrorMessage = (responseError, defaultError) => { let messageErrors = ''; if (!responseError) return defaultError; let data = responseError; if (data instanceof ArrayBuffer) { data = (0, array_1.arrayBufferToJson)(data); } if (data.errors) { const errorMessageForConcat = []; data.errors.map((item) => item.message && errorMessageForConcat.push(item.message)); messageErrors = (0, string_1.concatMessages)(errorMessageForConcat); } return messageErrors && !(0, array_1.isEmpty)(messageErrors) ? messageErrors : defaultError; }; exports.getErrorMessage = getErrorMessage; const existsErrorCode = (code, responseError) => { if (responseError) { let data = responseError; if (data instanceof ArrayBuffer) { data = (0, array_1.arrayBufferToJson)(data); } if (data.errors) { for (let index = 0; index < data.errors.length; index += 1) { if (code === data.errors[index].code) { return true; } } } return false; } return false; }; exports.existsErrorCode = existsErrorCode; const existsErrorCodes = (codes, responseData) => { if (responseData) { let data = responseData; if (data instanceof ArrayBuffer) { data = (0, array_1.arrayBufferToJson)(data); } if (data.errors) { for (let index = 0; index < data.errors.length; index += 1) { if (codes.includes(data.errors[index].code)) { return true; } } } return false; } return false; }; exports.existsErrorCodes = existsErrorCodes; const ERROR_HANDLING_UTILS = { getResponseError: exports.getResponseError, getErrorMessage: exports.getErrorMessage, existsErrorCode: exports.existsErrorCode, existsErrorCodes: exports.existsErrorCodes, responseErrorTransform: exports.responseErrorTransform }; exports.default = ERROR_HANDLING_UTILS;