mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
refactor(init): inline routing in deno init --serve template (#26595)
This commit is contained in:
parent
46e5ed1a64
commit
aa2a354190
1 changed files with 19 additions and 22 deletions
|
@ -24,32 +24,29 @@ pub fn init_project(init_flags: InitFlags) -> Result<(), AnyError> {
|
||||||
create_file(
|
create_file(
|
||||||
&dir,
|
&dir,
|
||||||
"main.ts",
|
"main.ts",
|
||||||
r#"import { type Route, route, serveDir } from "@std/http";
|
r#"import { serveDir } from "@std/http";
|
||||||
|
|
||||||
const routes: Route[] = [
|
const userPagePattern = new URLPattern({ pathname: "/users/:id" });
|
||||||
{
|
const staticPathPattern = new URLPattern({ pathname: "/static/*" });
|
||||||
pattern: new URLPattern({ pathname: "/" }),
|
|
||||||
handler: () => new Response("Home page"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern: new URLPattern({ pathname: "/users/:id" }),
|
|
||||||
handler: (_req, _info, params) => new Response(params?.pathname.groups.id),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern: new URLPattern({ pathname: "/static/*" }),
|
|
||||||
handler: (req) => serveDir(req),
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
function defaultHandler(_req: Request) {
|
|
||||||
return new Response("Not found", { status: 404 });
|
|
||||||
}
|
|
||||||
|
|
||||||
const handler = route(routes, defaultHandler);
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
fetch(req) {
|
fetch(req) {
|
||||||
return handler(req);
|
const url = new URL(req.url);
|
||||||
|
|
||||||
|
if (url.pathname === "/") {
|
||||||
|
return new Response("Home page");
|
||||||
|
}
|
||||||
|
|
||||||
|
const userPageMatch = userPagePattern.exec(url);
|
||||||
|
if (userPageMatch) {
|
||||||
|
return new Response(userPageMatch.pathname.groups.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (staticPathPattern.test(url)) {
|
||||||
|
return serveDir(req);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Response("Not found", { status: 404 });
|
||||||
},
|
},
|
||||||
} satisfies Deno.ServeDefaultExport;
|
} satisfies Deno.ServeDefaultExport;
|
||||||
"#,
|
"#,
|
||||||
|
|
Loading…
Reference in a new issue