import type { Server } from "../compose"; import type { BufferedResponse, Request } from "../core/bufferedServer"; export type Route = { method: string; url: string; app: Server; }; export function route( routes: Route[], ): Server { return async function route_(request) { const { url, method } = request; const route = routes.filter( (registered) => registered.url === url && registered.method === method, )[0]; if (route) { return route.app(request); } throw "No routes matched"; }; }