https://github.com/denostack/dewy
Dewy(dǝw-y) is a minimalist HTTP server framework with a small codebase, utilizing built-in URLPattern for efficient routing.
https://github.com/denostack/dewy
deno http-server restful urlpattern web
Last synced: 22 days ago
JSON representation
Dewy(dǝw-y) is a minimalist HTTP server framework with a small codebase, utilizing built-in URLPattern for efficient routing.
- Host: GitHub
- URL: https://github.com/denostack/dewy
- Owner: denostack
- License: mit
- Created: 2023-01-03T10:39:00.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-10T16:54:45.000Z (about 3 years ago)
- Last Synced: 2023-10-04T21:32:01.456Z (over 2 years ago)
- Topics: deno, http-server, restful, urlpattern, web
- Language: TypeScript
- Homepage:
- Size: 18.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Dewy(dǝw-y) is a minimalist HTTP server framework with a small codebase,
utilizing built-in URLPattern for efficient routing.
## Usage
### with Deno
```ts
import { Router } from "https://deno.land/x/dewy/mod.ts";
const router = new Router();
router.get("/", () => {
return Response.json({
message: "Hello World",
});
});
router.get("/articles/:id", ({ match }) => {
return Response.json({
id: match.pathname.groups.id,
});
});
Deno.serve(router.dispatch.bind(router), {
port: 8080,
});
```
```bash
deno run --allow-net --unstable server.ts
```
In addition to using `Deno.serve`, you can also use the HTTP server from the
standard library by importing `https://deno.land/std@0.167.0/http/server.ts`.
Here is an example:
```ts
import { serve } from "https://deno.land/std@0.167.0/http/server.ts";
/* ... */
serve(router.dispatch.bind(router), {
port: 8080,
});
```
Using the HTTP server from the standard library allows you to deploy your
application to a Deno Deploy environment.
### with NPM
```bash
npm install dewy
```
## Middlewares
**CORS**
The cors middleware from dewy allows you to easily add CORS (Cross-Origin
Resource Sharing) support to your routes.
```ts
import { cors } from "https://deno.land/x/dewy/middlewares/cors.ts";
router.addRoute({
method: ["GET", "POST", "OPTIONS", "CUSTOMMETHOD"],
pattern: "/cors",
middleware: cors({
allowMethods: ["POST", "CUSTOMMETHOD"],
}),
}, () => {
return Response.json({ success: true });
});
```
## See Also
- [rutt](https://github.com/denosaurs/rutt) Rutt is a http router for deno, fast
route matching with `URLPatterns`.