prep for publish

This commit is contained in:
2025-01-04 18:04:40 -07:00
parent b73af68989
commit 0c8d1865ff
6 changed files with 384 additions and 331 deletions

View File

@@ -7,24 +7,26 @@ A simple router for Deno.
## Usage
### Basics
```ts
import Router from '@bearmetal/router';
import Router from "@bearmetal/router";
const router = new Router();
router
.route('/users')
.get((ctx) => {
return new Response('GET /users');
.route("/users")
.get((req, ctx) => {
return new Response("GET /users");
})
.post((ctx) => {
return new Response('POST /users');
.post((req, ctx) => {
return new Response("POST /users");
});
Deno.serve(router.handle)
Deno.serve(router.handle);
```
### Middleware
```ts
...
@@ -37,6 +39,7 @@ router.use('/users', async (ctx, next) => {
```
### Nested Routers
```ts
...
@@ -56,3 +59,45 @@ router.use('/users', nestedRouter);
...
```
### Static Files
```ts
...
router.serveDirectory('dirname', '/url-root') // files from 'dirname' directory will be available at '/url-root/filename'
// To automatically locate index.html pages:
router.serveDirectory('dirWithIndexHtml', '/indexes', {showIndex: true});
// Will also generate an index if there is no index.html present in the directory
...
```
### File-based Routing
```ts
import { FileRouter } from "@bearmetal/router";
const router = new FileRouter("dirname");
Deno.listen(router.handle);
// dirname/index.ts - will be accessible at '/'
export default function (req, ctx) {
return new Response("Hello, world!");
}
// dirname/methods.ts - will be accessible at '/methods'
export const handlers = {
get() {
return new Response("Hello, world");
},
post(req, ctx) {
const data = doDataOp(req.body);
return new Response(data);
},
};
// dirname/nestedRouter.ts - will be accessible at '/nestedRouter'
import { router } from "@bearmetal/router";
const router = new Router();
export default router;
```