Files
tf_code/packages/web/src/pages/[...slug].md.ts
2026-02-09 11:34:35 -06:00

35 lines
916 B
TypeScript

import type { APIRoute } from "astro"
import { getCollection } from "astro:content"
function notFoundText(locals: unknown) {
if (typeof locals !== "object" || locals === null || !("t" in locals)) {
return "share.not_found"
}
const t = (locals as { t?: unknown }).t
if (typeof t !== "function") {
return "share.not_found"
}
const text = t("share.not_found")
if (typeof text === "string" && text.length > 0) {
return text
}
return "share.not_found"
}
export const GET: APIRoute = async ({ params, locals }) => {
const slug = params.slug || "index"
const docs = await getCollection("docs")
const doc = docs.find((d) => d.id === slug)
const notFound = notFoundText(locals)
if (!doc) {
return new Response(notFound, { status: 404, statusText: notFound })
}
return new Response(doc.body, {
headers: {
"Content-Type": "text/plain; charset=utf-8",
},
})
}