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 Petrify 2022-06-24 at 5 55 56 PM - - -## Fetch / `router.handle()` - -❗️ Be aware that with `v2.0.0` the parameters of `router.handle()` changed ❗️ - - -### Before - -Petrify 2022-06-24 at 5 58 43 PM - - -### After - -Petrify 2022-06-24 at 5 59 22 PM 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 {