0.4.1 • Published 12 months ago

@bob-obringer/http-errors v0.4.1

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

HTTP Errors

A collection of HTTP Error Classes.

Installation

pnpm install @bob-obringer/http-errors
npm install @bob-obringer/http-errors
yarn add @bob-obringer/http-errors

Usage

import { HttpErrorBadRequest } from "@bob-obringer/http-errors";

// Throw a new HTTP error
throw new HttpErrorBadRequest("Bad request error message");

Each HTTP error class extends the base HttpError class and sets the HTTP status code and error name accordingly. You can use these classes to throw or handle specific HTTP errors in your application.

Responding with HTTP Errors

Since we can't send Error classes over the wire, this package includes a helper to serialize errors to plain objects to be sent to the client.

import { unstable_getErrorResponse } from "@bob-obringer/http-errors";

const handler = async (req, res) => {
  try {
    return Response.json({ success: true, data: {...} });
  } catch (error) {
    return getErrorResponse(error);
  }
};

error can be anything. It will be wrapped in an HttpError and be serialized with the following shape:

{
  status: number,
  name: string,
  message: string
}

I'm not convinced this belongs here, but I'm using it in my own projects until I have a better way to send neverthrow return types across the wire.

HTTP Error Classes

The following HTTP error classes are available:

  • HttpErrorBadRequest (400)
  • HttpErrorUnauthorized (401)
  • HttpErrorForbidden (403)
  • HttpErrorNotFound (404)
  • HttpErrorMethodNotAllowed (405)
  • HttpErrorNotAcceptable (406)
  • HttpErrorProxyAuthenticationRequired (407)
  • HttpErrorRequestTimeout (408)
  • HttpErrorConflict (409)
  • HttpErrorGone (410)
  • HttpErrorLengthRequired (411)
  • HttpErrorPreconditionFailed (412)
  • HttpErrorPayloadTooLarge (413)
  • HttpErrorURITooLong (414)
  • HttpErrorUnsupportedMediaType (415)
  • HttpErrorRangeNotSatisfiable (416)
  • HttpErrorExpectationFailed (417)
  • HttpErrorImATeapot (418)
  • HttpErrorUnprocessableEntity (422)
  • HttpErrorTooEarly (425)
  • HttpErrorUpgradeRequired (426)
  • HttpErrorPreconditionRequired (428)
  • HttpErrorTooManyRequests (429)
  • HttpErrorRequestHeaderFieldsTooLarge (431)
  • HttpErrorUnavailableForLegalReasons (451)
  • HttpErrorInternalServerError (500)
  • HttpErrorNotImplemented (501)
  • HttpErrorBadGateway (502)
  • HttpErrorServiceUnavailable (503)
  • HttpErrorGatewayTimeout (504)
  • HttpErrorHTTPVersionNotSupported (505)
  • HttpErrorVariantAlsoNegotiates (506)
  • HttpErrorInsufficientStorage (507)
  • HttpErrorLoopDetected (508)
  • HttpErrorNotExtended (510)
  • HttpErrorNetworkAuthenticationRequired (511)
0.4.1

12 months ago

0.4.0

12 months ago

0.3.1

12 months ago

0.3.0

1 year ago

0.2.0

1 year ago