import { HandlerContext } from "$fresh/server.ts"; import { getDocument, getDocuments } from "@lib/documents.ts"; import { parseMovie } from "@lib/movies.ts"; export async function getMovies() { const documents = await getDocuments(); return Promise.all( documents.filter((d) => { return d.name.startsWith("Media/movies/") && d.contentType === "text/markdown" && !d.name.endsWith("index.md"); }).map(async (doc) => { const document = await getDocument(doc.name); const movie = parseMovie(document, doc.name); return { ...movie, id: movie.id.replace(/\.md$/, "").replace(/^Media\/movies\//, ""), }; }), ); } export const handler = async ( _req: Request, _ctx: HandlerContext, ): Promise => { const headers = new Headers(); headers.append("Content-Type", "application/json"); const movies = await getMovies(); return new Response(JSON.stringify(movies), { headers }); };