achat-maison-albi-fr/src/pages/favicon.ico.ts
Emil Gulamov 74c986e405 Update manifest ID and reduce favicon sizes
The favicon size options have been reduced to only 16px and 32px, abandoning larger, less commonly used sizes.
2024-03-28 18:08:43 +04:00

28 lines
654 B
TypeScript

import type { APIRoute } from "astro";
import sharp from "sharp";
import ico from "sharp-ico";
import path from "node:path";
const faviconSrc = path.resolve("src/images/icon.png");
export const GET: APIRoute = async () => {
// Resize the image to multiple sizes
const sizes = [16, 32];
const buffers = await Promise.all(
sizes.map(async (size) => {
return await sharp(faviconSrc)
.resize(size)
.toFormat("png")
.toBuffer();
})
);
// Convert the image to an ICO file
const icoBuffer = ico.encode(buffers);
return new Response(icoBuffer, {
headers: { "Content-Type": "image/x-icon" },
});
};