@iel/axios-ext-response-wrap
Version:
Axios response result wrapper.
32 lines (31 loc) • 1.56 kB
JavaScript
import { isSafeInteger, isString } from '@iel/axios-ext-utils';
export function getResponseDataByAdaptors(responseData, adaptors) {
for (const adaptor of adaptors) {
const { isAdaption, result } = adaptor(responseData);
if (isAdaption)
return result;
}
return {
error: false,
data: responseData,
message: ''
};
}
export function getResponseErrorMsg(error) {
var _a, _b;
const getMsg = (data) => (isString(data) || isSafeInteger(data) ? data : '');
const getResponse = (data) => { var _a; return (_a = data === null || data === void 0 ? void 0 : data.response) !== null && _a !== void 0 ? _a : data; };
const UNKNOWN_ERROR = '未知错误';
if (!error)
return UNKNOWN_ERROR;
const response = getResponse(error);
return (getMsg(response) ||
getMsg((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message) ||
getMsg((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.data) ||
getMsg(response === null || response === void 0 ? void 0 : response.data) ||
getMsg(error === null || error === void 0 ? void 0 : error.message) ||
getMsg(response === null || response === void 0 ? void 0 : response.statusText) ||
getMsg(response === null || response === void 0 ? void 0 : response.status) ||
getMsg(error === null || error === void 0 ? void 0 : error.code) ||
UNKNOWN_ERROR);
}