From 38b995ce8d6e5f6d6dffc3ef3b7fd85001044459 Mon Sep 17 00:00:00 2001 From: Emma Short Date: Sun, 10 Nov 2024 11:50:13 -0700 Subject: [PATCH] Basic readme --- README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cad12eb..b87c7c8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,58 @@ -# Router +# BearMetal Router + +A simple router for Deno. + +[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) + +## Usage + +### Basics +```ts +import Router from '@bearmetal/router'; + +const router = new Router(); + +router + .route('/users') + .get((ctx) => { + return new Response('GET /users'); + }) + .post((ctx) => { + return new Response('POST /users'); + }); + +Deno.serve(router.handle) +``` + +### Middleware +```ts +... + +router.use('/users', async (ctx, next) => { + console.log('Executing middleware'); + return await next(); +}); + +... +``` + +### Nested Routers +```ts +... + +const nestedRouter = new Router(); + +nestedRouter + .route('/users') + .get((ctx) => { + return new Response('GET /users'); + }) + .post((ctx) => { + return new Response('POST /users'); + }); + +router.use('/users', nestedRouter); + +... +```