// app.ts import { services } from "./services"; import{DenoRequest, Method, ProcessedRoute, Request, Route} from './types' import {routes} from './routes' services.logging.log({ foo: 1 }); const processedRoutes: ProcessedRoute[] = routes.map( (route: Route, idx: number, allRoutes: Route[]) => { const pattern: URLPattern = new URLPattern({ pathname: route.path }); const method: Method = route.method; const handler = async (denoRequest: DenoRequest) => { const req: Request = { pattern: route.pattern, path: denoRequest.path, method: denoRequest.method, parameters: { one: 1, two: 2 }, denoRequest, }; return route.handler(req); }; const retval: ProcessedRoute = { pattern, method, handler }; return retval }, ); async function handler(req: globalThis.Request): globalThis.Response { for (const [idx, pr] of processedRoutes.entries()) { const match = pr.pattern.exec(req.url); if (match) { const resp = await pr.handler(req); return new globalThis.Response(resp.result); } } return new globalThis.Response("not found", { status: 404 }); } Deno.serve(handler);