@freehour/bun-middlewares
v1.1.0
Published
Middlewares for Bun.serve
Readme
Bun Middlewares
This package provides definitions for middlewares that can be used with Bun.serve.
Middlewares
- CORS: A middleware to handle Cross-Origin Resource Sharing (CORS) in Bun.serve.
Usage
You can use the provided middlewares by importing them from the package and applying them to your fetch handlers or routes in Bun.serve.
import { createCORSMiddleware } from '@freehour/bun-middlewares';
const cors = createCORSMiddleware({
origin: '*',
methods: ['GET', 'POST', 'PUT', 'DELETE'],
allowedHeaders: ['Content-Type'],
});
Bun.serve({
...,
routes: cors({
'/api': async req => {
return new Response('Hello, world!');
},
}),
fetch: cors(async req => {
return new Response('Hello, world!');
}),
});Defining Your Own Middleware
You can define your own middleware by creating a function that takes a Bun request handler and returns a new request handler. This allows you to modify the request and response as needed.
import { createMiddleware } from '@freehour/bun-middlewares';
const loggerMiddleware = createMiddleware(handler => async (request, server) => {
console.log(`Received request for ${request.url}`);
const response = await handler(request, server);
console.log(`Responding with status ${response.status}`);
return response;
});Joining Multiple Middlewares
Middlewares can be applied in sequence like any other higher-order function. You can also use the joinMiddlewares function to combine multiple middlewares into a single middleware.
import { joinMiddlewares } from '@freehour/bun-middlewares';
const m = joinMiddlewares(m1, m2, m3); // m(handler) is equivalent to m1(m2(m3(handler)))