https://github.com/gtramontina/elysia-error-handler
Elysia Error Handler
https://github.com/gtramontina/elysia-error-handler
Last synced: about 2 months ago
JSON representation
Elysia Error Handler
- Host: GitHub
- URL: https://github.com/gtramontina/elysia-error-handler
- Owner: gtramontina
- Created: 2024-02-11T05:31:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-11T08:17:49.000Z (over 1 year ago)
- Last Synced: 2024-10-15T04:44:24.202Z (8 months ago)
- Language: TypeScript
- Size: 8.79 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Elysia Error Handler
Elysia plugin to define HTTP error handlers in a more declarative way.
## Installation
```sh
bun add --exact @gtramontina.com/elysia-error-handler
```## Usage
```typescript
import { errorHandler } from "@gtramontina.com/elysia-error-handler";
import { Elysia } from "elysia";class CustomForbiddenError extends Error { status = 403 }
new Elysia()
.use(
errorHandler({
400: () => new Response("too bad!", { status: 400 }), // return Response
403: () => 403, // return number
404: () => "uh-oh! not found!", // return string
500: ({ error }) => `error: ${error.message}`, // access to context
}),
)
.get("/400", () => { throw new ParseError(); })
.get("/403", () => { throw new CustomForbiddenError(); })
.get("/404", () => { throw new NotFoundError(); })
.get("/500", () => { throw new Error("boom!"); })
.listen(3000);
```You can also import…
```typescript
import { ErrorStatus } from "@gtramontina.com/elysia-error-handler";
```…for more descriptive error status names, such as `ErrorStatus.BadRequest`, `ErrorStatus.TooManyRequests`, and so on.