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 type { APIRoute } from "astro";
import { generateOgImageForSite } from "@/utils/generateOgImages"; import { generateOgImageForSite } from "@/utils/generateOgImages";
export const GET: APIRoute = async () => export const GET: APIRoute = async () => {
new Response(await generateOgImageForSite(), { const buffer = await generateOgImageForSite();
return new Response(new Uint8Array(buffer), {
headers: { "Content-Type": "image/png" }, headers: { "Content-Type": "image/png" },
}); });
};
+4 -6
View File
@@ -27,10 +27,8 @@ export const GET: APIRoute = async ({ props }) => {
}); });
} }
return new Response( const buffer = await generateOgImageForPost(props as CollectionEntry<"blog">);
await generateOgImageForPost(props as CollectionEntry<"blog">), return new Response(new Uint8Array(buffer), {
{ headers: { "Content-Type": "image/png" },
headers: { "Content-Type": "image/png" }, });
}
);
}; };