nephele
Version:
Highly customizable and extensible WebDAV server for Node.js and Express.
108 lines • 4.57 kB
JavaScript
import { BadGatewayError, BadRequestError, EncodingNotSupportedError, FailedDependencyError, ForbiddenError, InsufficientStorageError, InternalServerError, LockedError, MediaTypeNotSupportedError, MethodNotImplementedError, MethodNotSupportedError, NotAcceptableError, PreconditionFailedError, PropertyIsProtectedError, RangeNotSatisfiableError, RequestTimeoutError, RequestURITooLongError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, ResourceTreeNotCompleteError, ServiceUnavailableError, UnauthorizedError, UnprocessableEntityError, } from './Errors/index.js';
export function catchErrors(fn, errorHandler) {
return async (...args) => {
try {
return await fn(...args);
}
catch (e) {
if (e instanceof ResourceNotModifiedError) {
await errorHandler(304, e.message, e, args);
return;
}
if (e instanceof BadRequestError) {
await errorHandler(400, e.message, e, args);
return;
}
if (e instanceof UnauthorizedError) {
await errorHandler(401, e.message, e, args);
return;
}
if (e instanceof ForbiddenError) {
await errorHandler(403, e.message, e, args);
return;
}
if (e instanceof PropertyIsProtectedError) {
await errorHandler(403, e.message, e, args);
return;
}
if (e instanceof ResourceNotFoundError) {
await errorHandler(404, e.message, e, args);
return;
}
if (e instanceof MethodNotSupportedError) {
await errorHandler(405, e.message, e, args);
return;
}
if (e instanceof ResourceExistsError) {
await errorHandler(405, e.message, e, args);
return;
}
if (e instanceof EncodingNotSupportedError) {
await errorHandler(406, e.message, e, args);
return;
}
if (e instanceof NotAcceptableError) {
await errorHandler(406, e.message, e, args);
return;
}
if (e instanceof RequestTimeoutError) {
await errorHandler(408, e.message, e, args);
return;
}
if (e instanceof ResourceTreeNotCompleteError) {
await errorHandler(409, e.message, e, args);
return;
}
if (e instanceof PreconditionFailedError) {
await errorHandler(412, e.message, e, args);
return;
}
if (e instanceof RequestURITooLongError) {
await errorHandler(414, e.message, e, args);
return;
}
if (e instanceof MediaTypeNotSupportedError) {
await errorHandler(415, e.message, e, args);
return;
}
if (e instanceof RangeNotSatisfiableError) {
await errorHandler(416, e.message, e, args);
return;
}
if (e instanceof UnprocessableEntityError) {
await errorHandler(422, e.message, e, args);
return;
}
if (e instanceof LockedError) {
await errorHandler(423, e.message, e, args);
return;
}
if (e instanceof FailedDependencyError) {
await errorHandler(424, e.message, e, args);
return;
}
if (e instanceof InternalServerError) {
await errorHandler(500, e.message, e, args);
return;
}
if (e instanceof MethodNotImplementedError) {
await errorHandler(501, e.message, e, args);
return;
}
if (e instanceof BadGatewayError) {
await errorHandler(502, e.message, e, args);
return;
}
if (e instanceof ServiceUnavailableError) {
await errorHandler(503, e.message, e, args);
return;
}
if (e instanceof InsufficientStorageError) {
await errorHandler(507, e.message, e, args);
return;
}
await errorHandler(500, e.message || 'Internal server error.', e, args);
}
};
}
//# sourceMappingURL=catchErrors.js.map