import type { APIRoute, GetStaticPaths } from "astro";
import { loadDocs } from "../../lib/docs";
import { card, cardFor } from "../../lib/og";

export const getStaticPaths: GetStaticPaths = async () => {
  const docs = await loadDocs();
  return [...docs.values()].map((doc) => ({ params: { slug: doc.url.slice(1, -1) }, props: { id: doc.id } }));
};

export const GET: APIRoute = async ({ props }) => {
  const docs = await loadDocs();
  const png = await card(cardFor(docs.get(props.id)!, docs));
  return new Response(new Uint8Array(png), { headers: { "content-type": "image/png" } });
};
