diff --git a/fresh.gen.ts b/fresh.gen.ts index 330c829..9bbb906 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -30,6 +30,7 @@ import * as $api_user from "./routes/api/user.ts"; import * as $file_id_ from "./routes/file/[id].ts"; import * as $file_verify_id_ from "./routes/file/[verify]/[id].ts"; import * as $file_middleware from "./routes/file/_middleware.ts"; +import * as $index from "./routes/index.ts"; import * as $thumbnail_id_ from "./routes/thumbnail/[id].ts"; import * as $thumbnail_middleware from "./routes/thumbnail/_middleware.ts"; import * as $upload from "./routes/upload.tsx"; @@ -67,6 +68,7 @@ const manifest = { "./routes/file/[id].ts": $file_id_, "./routes/file/[verify]/[id].ts": $file_verify_id_, "./routes/file/_middleware.ts": $file_middleware, + "./routes/index.ts": $index, "./routes/thumbnail/[id].ts": $thumbnail_id_, "./routes/thumbnail/_middleware.ts": $thumbnail_middleware, "./routes/upload.tsx": $upload, diff --git a/routes/index.ts b/routes/index.ts new file mode 100644 index 0000000..41fa81a --- /dev/null +++ b/routes/index.ts @@ -0,0 +1,26 @@ +import { Handlers } from "$fresh/server.ts"; +import { get_task_manager } from "../server.ts"; +import { get_host } from "../server/utils.ts"; +import { exists } from "std/fs/exists.ts"; + +export const handler: Handlers = { + async GET(req, _ctx) { + const m = get_task_manager(); + if (m.cfg.redirect_to_flutter) { + let flutter_base = import.meta.resolve("../static/flutter").slice( + 7, + ); + if (Deno.build.os === "windows") { + flutter_base = flutter_base.slice(1); + } + if (m.cfg.flutter_frontend) { + flutter_base = m.cfg.flutter_frontend; + } + if (!await exists(flutter_base)) { + return new Response("404 Not Found", {status: 404}); + } + return Response.redirect(`${get_host(req)}/flutter/`); + } + return new Response("404 Not Found", {status: 404}); + } +};