Skip to main content
Module

x/dero/error.ts

Fast web framework for Deno (support native HTTP/2 Hyper and std/http).
Go to Latest
File
export class DeroError extends Error { status: number; constructor(message: any, status: number = 500, name?: string) { super(message); this.message = message; this.status = status; this.name = name || "HttpError"; } } // 4xx /** * status 400 * @example * throw new BadRequestError("message"); */ export class BadRequestError extends DeroError { constructor(message: any) { super(message, 400, "BadRequestError"); } } /** * status 401 * @example * throw new UnauthorizedError("message"); */ export class UnauthorizedError extends DeroError { constructor(message: any) { super(message, 401, "UnauthorizedError"); } } /** * status 402 * @example * throw new PaymentRequiredError("message"); */ export class PaymentRequiredError extends DeroError { constructor(message: any) { super(message, 402, "PaymentRequiredError"); } } /** * status 403 * @example * throw new ForbiddenError("message"); */ export class ForbiddenError extends DeroError { constructor(message: any) { super(message, 403, "ForbiddenError"); } } /** * status 404 * @example * throw new NotFoundError("message"); */ export class NotFoundError extends DeroError { constructor(message: any) { super(message, 404, "NotFoundError"); } } /** * status 405 * @example * throw new MethodNotAllowedError("message"); */ export class MethodNotAllowedError extends DeroError { constructor(message: any) { super(message, 405, "MethodNotAllowedError"); } } /** * status 406 * @example * throw new NotAcceptableError("message"); */ export class NotAcceptableError extends DeroError { constructor(message: any) { super(message, 406, "NotAcceptableError"); } } /** * status 407 * @example * throw new ProxyAuthRequiredError("message"); */ export class ProxyAuthRequiredError extends DeroError { constructor(message: any) { super(message, 407, "ProxyAuthRequiredError"); } } /** * status 408 * @example * throw new RequestTimeoutError("message"); */ export class RequestTimeoutError extends DeroError { constructor(message: any) { super(message, 408, "RequestTimeoutError"); } } /** * status 409 * @example * throw new ConflictError("message"); */ export class ConflictError extends DeroError { constructor(message: any) { super(message, 409, "ConflictError"); } } /** * status 410 * @example * throw new GoneError("message"); */ export class GoneError extends DeroError { constructor(message: any) { super(message, 410, "GoneError"); } } /** * status 411 * @example * throw new LengthRequiredError("message"); */ export class LengthRequiredError extends DeroError { constructor(message: any) { super(message, 411, "LengthRequiredError"); } } /** * status 412 * @example * throw new PreconditionFailedError("message"); */ export class PreconditionFailedError extends DeroError { constructor(message: any) { super(message, 412, "PreconditionFailedError"); } } /** * status 413 * @example * throw new RequestEntityTooLargeError("message"); */ export class RequestEntityTooLargeError extends DeroError { constructor(message: any) { super(message, 413, "RequestEntityTooLargeError"); } } /** * status 414 * @example * throw new RequestURITooLongError("message"); */ export class RequestURITooLongError extends DeroError { constructor(message: any) { super(message, 414, "RequestURITooLongError"); } } /** * status 415 * @example * throw new UnsupportedMediaTypeError("message"); */ export class UnsupportedMediaTypeError extends DeroError { constructor(message: any) { super(message, 415, "UnsupportedMediaTypeError"); } } /** * status 416 * @example * throw new RequestedRangeNotSatisfiableError("message"); */ export class RequestedRangeNotSatisfiableError extends DeroError { constructor(message: any) { super(message, 416, "RequestedRangeNotSatisfiableError"); } } /** * status 417 * @example * throw new ExpectationFailedError("message"); */ export class ExpectationFailedError extends DeroError { constructor(message: any) { super(message, 417, "ExpectationFailedError"); } } /** * status 418 * @example * throw new TeapotError("message"); */ export class TeapotError extends DeroError { constructor(message: any) { super(message, 418, "TeapotError"); } } /** * status 421 * @example * throw new MisdirectedRequestError("message"); */ export class MisdirectedRequestError extends DeroError { constructor(message: any) { super(message, 421, "MisdirectedRequestError"); } } /** * status 422 * @example * throw new UnprocessableEntityError("message"); */ export class UnprocessableEntityError extends DeroError { constructor(message: any) { super(message, 422, "UnprocessableEntityError"); } } /** * status 423 * @example * throw new LockedError("message"); */ export class LockedError extends DeroError { constructor(message: any) { super(message, 423, "LockedError"); } } /** * status 424 * @example * throw new FailedDependencyError("message"); */ export class FailedDependencyError extends DeroError { constructor(message: any) { super(message, 424, "FailedDependencyError"); } } /** * status 425 * @example * throw new TooEarlyError("message"); */ export class TooEarlyError extends DeroError { constructor(message: any) { super(message, 425, "TooEarlyError"); } } /** * status 426 * @example * throw new UpgradeRequiredError("message"); */ export class UpgradeRequiredError extends DeroError { constructor(message: any) { super(message, 426, "UpgradeRequiredError"); } } /** * status 428 * @example * throw new PreconditionRequiredError("message"); */ export class PreconditionRequiredError extends DeroError { constructor(message: any) { super(message, 428, "PreconditionRequiredError"); } } /** * status 429 * @example * throw new TooManyRequestsError("message"); */ export class TooManyRequestsError extends DeroError { constructor(message: any) { super(message, 429, "TooManyRequestsError"); } } /** * status 431 * @example * throw new RequestHeaderFieldsTooLargeError("message"); */ export class RequestHeaderFieldsTooLargeError extends DeroError { constructor(message: any) { super(message, 431, "RequestHeaderFieldsTooLargeError"); } } /** * status 451 * @example * throw new UnavailableForLegalReasonsError("message"); */ export class UnavailableForLegalReasonsError extends DeroError { constructor(message: any) { super(message, 451, "UnavailableForLegalReasonsError"); } } // 5xx /** * status 500 * @example * throw new InternalServerError("message"); */ export class InternalServerError extends DeroError { constructor(message: any) { super(message, 500, "InternalServerError"); } } /** * status 501 * @example * throw new NotImplementedError("message"); */ export class NotImplementedError extends DeroError { constructor(message: any) { super(message, 501, "NotImplementedError"); } } /** * status 502 * @example * throw new BadGatewayError("message"); */ export class BadGatewayError extends DeroError { constructor(message: any) { super(message, 502, "BadGatewayError"); } } /** * status 503 * @example * throw new ServiceUnavailableError("message"); */ export class ServiceUnavailableError extends DeroError { constructor(message: any) { super(message, 503, "ServiceUnavailableError"); } } /** * status 504 * @example * throw new GatewayTimeoutError("message"); */ export class GatewayTimeoutError extends DeroError { constructor(message: any) { super(message, 504, "GatewayTimeoutError"); } } /** * status 505 * @example * throw new HTTPVersionNotSupportedError("message"); */ export class HTTPVersionNotSupportedError extends DeroError { constructor(message: any) { super(message, 505, "HTTPVersionNotSupportedError"); } } /** * status 506 * @example * throw new VariantAlsoNegotiatesError("message"); */ export class VariantAlsoNegotiatesError extends DeroError { constructor(message: any) { super(message, 506, "VariantAlsoNegotiatesError"); } } /** * status 507 * @example * throw new InsufficientStorageError("message"); */ export class InsufficientStorageError extends DeroError { constructor(message: any) { super(message, 507, "InsufficientStorageError"); } } /** * status 508 * @example * throw new LoopDetectedError("message"); */ export class LoopDetectedError extends DeroError { constructor(message: any) { super(message, 508, "LoopDetectedError"); } } /** * status 510 * @example * throw new NotExtendedError("message"); */ export class NotExtendedError extends DeroError { constructor(message: any) { super(message, 510, "NotExtendedError"); } } /** * status 511 * @example * throw new NetworkAuthenticationRequiredError("message"); */ export class NetworkAuthenticationRequiredError extends DeroError { constructor(message: any) { super(message, 511, "NetworkAuthenticationRequiredError"); } } /** * Give error object */ export function getError(err: any, isStack: boolean = false) { let status = err.status || err.statusCode || err.code || 500; if (typeof status !== "number") status = 500; let stack = void 0; if (isStack) { let arr = err.stack ? err.stack.split("\n") : [""]; arr.shift(); stack = arr .filter((line: string | string[]) => line.indexOf("file://") !== -1) .map((line: string) => line.trim()); } return { status, message: err.message || "Something went wrong", name: err.name || "HttpError", stack, }; }