Middleware
Plugins and middleware allow adding reusable server extensions.
Example
import { serve, type ServerMiddleware, type ServerPlugin } from "srvx";
const xPoweredBy: ServerMiddleware = async (req, next) => {
const res = await next();
res.headers.set("X-Powered-By", "srvx");
return res;
};
const devLogs: ServerPlugin = (server) => {
if (process.env.NODE_ENV === "production") {
return;
}
console.log(`Logger plugin enabled!`);
server.options.middleware.push((req, next) => {
console.log(`[request] [${req.method}] ${req.url}`);
return next();
});
};
serve({
middleware: [xPoweredBy],
plugins: [devLogs],
fetch(request) {
return new Response(`👋 Hello there.`);
},
});