Rooter
An simple, small, and efficient router for Deno and Deno Deploy.
...in loving memory of the Brits who still think that this is how you pronounce "router" :D
Usage
import { makeHandler, makeRoute } from 'https://deno.land/rooter@1.0.0/mod.ts'
import { serve } from 'https://deno.land/std@0.40.0/http/mod.ts'
const postRoute = makeRoute('GET /blog/posts/:slug', ({ params }) => {
const postSlug = params.slug
// ...
return Response.json({ ... })
})
const handler = makeHandler([
// Insert a route inline
makeRoute('GET /', () => Response.json({ ... })),
// ... or make use of a predefined route
postRoute,
// Optionally add a catchall for 404s
makeRoute('*', () => Response.json(
{ error: { code: 'NOT_FOUND', message: 'The request resource was not found' } },
{ status: 404 }
))
])
await serve(handler, { port: 8000 })