anypay-ts
Version:
TypeScript библиотека для работы с платёжной системой AnyPay
35 lines (34 loc) • 1.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AnyPayError = void 0;
exports.handleAxiosError = handleAxiosError;
const axios_1 = __importDefault(require("axios"));
class AnyPayError extends Error {
constructor(message, code, status) {
super(message);
this.name = 'AnyPayError';
this.code = code;
this.status = status;
}
}
exports.AnyPayError = AnyPayError;
function handleAxiosError(err) {
if (axios_1.default.isAxiosError(err)) {
const axiosErr = err;
// Приводим response.data к типу AnyPayErrorResponse
const data = axiosErr.response?.data;
if (data?.error) {
const { code, message } = data.error;
throw new AnyPayError(message, code, axiosErr.response?.status);
}
// Если пришёл HTML или другой текст
const status = axiosErr.response?.status;
const statusText = axiosErr.response?.statusText || 'Unknown error';
throw new AnyPayError(`HTTP ${status}: ${statusText}`, undefined, status);
}
// Любые другие ошибки
throw err;
}