Web framework for Cloudflare Workers and service workers, inspired by Koa and fastify
npm install @cfworker/web




Web framework for Cloudflare Workers and service workers, inspired by Koa and fastify.
``ts
import {
Application,
Middleware,
Router,
validate,
normalizePathnameMiddleware
} from '@cfworker/web';
const router = new Router();
// Add the homepage route.
router.get('/', ({ res }) => {
res.body =
;
});// Add a greeting route with validation.
router.get(
'/greetings/:greeting',
validate({
params: {
required: ['greeting'],
properties: {
greeting: {
minLength: 5,
maxLength: 10
}
}
}
}),
({ req, res }) => {
res.body = req.params;
}
);
// Add a route to demonstrate exception handling.
router.get('/error', () => {
// @ts-ignore - this route has a bug!
req.this.method.does.not.exist();
});
// Favicon route for fun :)
router.get('/favicon.ico', ({ res }) => {
res.type = 'image/svg+xml';
res.body =
;
});// Simple CORS middleware.
const cors: Middleware = async ({ res }, next) => {
res.headers.set('access-control-allow-origin', '*');
await next();
};
// Compose the application
new Application()
.use(normalizePathnameMiddleware)
.use(cors)
.use(router.middleware)
.listen();
``
git clone https://github.com/cfworker/cfworker
cd cfworker
npm install
npm run start-web --workspace=@cfworker/examples
``