fix(og-images): wrap Buffer in Uint8Array for Response body (#568)

Astro uses Web API typings; Response doesn’t accept Node Buffer. Convert
the generated OG image Buffer to Uint8Array before constructing Response
to satisfy BodyInit and fix the build/type error.

Closes #560
This commit is contained in:
StephenFang
2025-08-21 22:30:10 +08:00
committed by GitHub
parent aad228f89d
commit aad5ac67e4
2 changed files with 8 additions and 8 deletions
+4 -2
View File
@@ -1,7 +1,9 @@
import type { APIRoute } from "astro";
import { generateOgImageForSite } from "@/utils/generateOgImages";
export const GET: APIRoute = async () =>
new Response(await generateOgImageForSite(), {
export const GET: APIRoute = async () => {
const buffer = await generateOgImageForSite();
return new Response(new Uint8Array(buffer), {
headers: { "Content-Type": "image/png" },
});
};
+4 -6
View File
@@ -27,10 +27,8 @@ export const GET: APIRoute = async ({ props }) => {
});
}
return new Response(
await generateOgImageForPost(props as CollectionEntry<"blog">),
{
headers: { "Content-Type": "image/png" },
}
);
const buffer = await generateOgImageForPost(props as CollectionEntry<"blog">);
return new Response(new Uint8Array(buffer), {
headers: { "Content-Type": "image/png" },
});
};