diff --git a/MIGRATION.md b/MIGRATION.md
index f8f7460..12dbef9 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -17,7 +17,7 @@ Follow Cloudflare's [Migration Guide](https://developers.cloudflare.com/workers/
## Update
-Update to the latest version verstion
+Update to the latest version version of the router.
```bash
npm i -D @tsndr/cloudflare-worker-router
@@ -25,7 +25,7 @@ npm i -D @tsndr/cloudflare-worker-router
## Import / Require
-Switch to ESModules.
+Switch from `require()` to `import`.
### Before
@@ -43,7 +43,7 @@ import Router from '@tsndr/cloudflare-worker-router'
## Routes
-Just add curly braces.
+Just add curly braces `{}`.
### Before
@@ -54,18 +54,3 @@ Just add curly braces.
### After
-
-
-## Fetch / `router.handle()`
-
-❗️ Be aware that with `v2.0.0` the parameters of `router.handle()` changed ❗️
-
-
-### Before
-
-
-
-
-### After
-
-
diff --git a/README.md b/README.md
index c8f7736..048425b 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,8 @@ I worked a lot with [Express.js](https://expressjs.com/) in the past and really
## Usage
+Migrating from `v1.x.x`, check out the [Migration Guide](MIGRATION.md).
+
### TypeScript Example
```typescript
@@ -51,12 +53,10 @@ const router = new Router()
router.cors()
// Register global middleware
-router.use(() => {
- return new Response(null, {
- headers: {
- 'X-Global-Middlewares': 'true'
- }
- })
+router.use(({ env, req }) => {
+ // Intercept if token doesn't match
+ if (req.headers.get('authorization') !== env.SECRET_TOKEN)
+ return new Response(null, { status: 401 })
})
// Simple get
@@ -85,9 +85,7 @@ router.post('/user/:id', ({ req }) => {
// Delete route using a middleware
router.delete('/user/:id', ({ env, req }) => {
- const { SECRET_TOKEN } = env
-
- if (req.headers.get('Authorization') === SECRET_TOKEN)
+ if (req.headers.get('authorization') === env.SECRET_TOKEN)
return new Response(null, { status: 401 })
}, ({ req }) => {
@@ -121,12 +119,10 @@ const router = new Router()
router.cors()
// Register global middleware
-router.use(() => {
- return new Response(null, {
- headers: {
- 'X-Global-Middlewares': 'true'
- }
- })
+router.use(({ env, req }) => {
+ // Intercept if token doesn't match
+ if (req.headers.get('authorization') !== env.SECRET_TOKEN)
+ return new Response(null, { status: 401 })
})
// Simple get
@@ -139,11 +135,12 @@ router.get('/user', () => {
// Post route with url parameter
router.post('/user/:id', ({ req }) => {
+
const userId = req.params.id
// Do stuff
- if (errorDoingStuff) {
+ if (!true) {
return Response.json({
error: 'Error doing stuff!'
}, { status: 400 })
@@ -154,17 +151,16 @@ router.post('/user/:id', ({ req }) => {
// Delete route using a middleware
router.delete('/user/:id', ({ env, req }) => {
- const { SECRET_TOKEN } = env
-
- if (req.headers.get('Authorization') === SECRET_TOKEN)
+ if (req.headers.get('authorization') === env.SECRET_TOKEN)
return new Response(null, { status: 401 })
}, ({ req }) => {
- const userId = req.params.id
- // Do stuff...
+ const userId = req.params.id
- return Response.json({ userId })
+ // Do stuff...
+
+ return Response.json({ userId })
})
// Listen Cloudflare Workers Fetch Event
@@ -306,15 +302,15 @@ const router = new Router()
/// Example Route
//
-// router.get(/'hi', ({ res }) => {
-// res.body = 'Hello World'
+// router.get(/'hi', async () => {
+// return new Response('Hello World')
//}
/// Example Route for splitting into multiple files
//
-// const hiHandler: RouteHandler = ({ res }) => {
-// res.body = 'Hello World'
+// const hiHandler: RouteHandler = async () => {
+// return new Response('Hello World')
// }
//
// router.get('/hi', hiHandler)
@@ -340,10 +336,20 @@ import { Router } from '@tsndr/cloudflare-worker-router'
const router = new Router()
-// router.get(/'hi', ({ res }) => {
-// res.body = 'Hello World'
+/// Example Route
+//
+// router.get(/'hi', async () => {
+// return new Response('Hello World')
//}
+/// Example Route for splitting into multiple files
+//
+// async function hiHandler() {
+// return new Response('Hello World')
+// }
+//
+// router.get('/hi', hiHandler)
+
// TODO: add your routes here
export default {