node-circuit-breaker
Version:
Circuit Breaker: Decorators and tools that can easily apply the Circuit Breaker pattern.
88 lines (87 loc) • 3.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AxiosExceptionPipe = void 0;
// dummy
class AxiosErrorLike extends Error {
constructor(message, code, config, request, response) {
super();
}
}
let axiosErrorLike = AxiosErrorLike;
let nestjsErrorConvert = (e) => e;
try {
const axios = require('axios');
const nestjs = require('@nestjs/common');
if (axios === null || axios === void 0 ? void 0 : axios.AxiosError)
axiosErrorLike = axios.AxiosError;
class RequestUriTooLongException extends nestjs.HttpException {
constructor(objectOrError, description) {
super(nestjs.HttpException.createBody(objectOrError, description, 414), 414);
}
}
class TooManyRequestException extends nestjs.HttpException {
constructor(objectOrError, description) {
super(nestjs.HttpException.createBody(objectOrError, description, 429), 429);
}
}
nestjsErrorConvert = (e) => {
var _a, _b, _c;
switch (e.status || ((_b = (_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.toString())) {
case '400':
return new nestjs.BadRequestException(e);
case '401':
return new nestjs.UnauthorizedException(e);
case '403':
return new nestjs.ForbiddenException(e);
case '404':
return new nestjs.NotFoundException(e);
case '405':
return new nestjs.MethodNotAllowedException(e);
case '406':
return new nestjs.NotAcceptableException(e);
case '408':
return new nestjs.RequestTimeoutException(e);
case '409':
return new nestjs.ConflictException(e);
case '410':
return new nestjs.GoneException(e);
case '412':
return new nestjs.PreconditionFailedException(e);
case '413':
return new nestjs.PayloadTooLargeException(e);
case '414':
return new RequestUriTooLongException(e);
case '415':
return new nestjs.UnsupportedMediaTypeException(e);
case '418':
return new nestjs.ImATeapotException(e);
case '422':
return new nestjs.UnprocessableEntityException(e);
case '429':
return new TooManyRequestException(e);
case '500':
return new nestjs.InternalServerErrorException(e);
case '501':
return new nestjs.NotImplementedException(e);
case '502':
return new nestjs.BadGatewayException(e);
case '503':
return new nestjs.ServiceUnavailableException(e);
case '504':
return new nestjs.GatewayTimeoutException(e);
case '505':
return new nestjs.HttpVersionNotSupportedException(e);
}
if (e.code === 'ECONNABORTED' && ((_c = e.message) === null || _c === void 0 ? void 0 : _c.match(/timeout/i)))
return new nestjs.RequestTimeoutException(e);
return e;
};
}
catch (e) { }
const AxiosExceptionPipe = (e) => {
if (!(e instanceof axiosErrorLike))
return e;
const error = e;
return nestjsErrorConvert(error);
};
exports.AxiosExceptionPipe = AxiosExceptionPipe;