@widergy/web-utils
Version:
Utility GO! Web utils
91 lines (90 loc) • 3.39 kB
JavaScript
;
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;