import { getAllWebpages } from "@/content/pages/pages"; import { getSettings } from "@/content/settings/settings"; import type { APIRoute } from "astro"; import minifyXML from "minify-xml"; export const GET = (async () => { const settings = await getSettings(); const webPages = await getAllWebpages(); const pageCount = webPages.length; const perPage = settings.sitemap.perPage; const pages = Math.ceil(pageCount / perPage); let sitemaps: SitemapIndex[] = []; for (let i = 0; i < pages; i++) { sitemaps.push({ url: `/sitemap/pages-${i + 1}.xml`, lastModified: new Date() }); } let sitemapContent = ` ${sitemaps.map((item) => ` ${settings.website.domainName}${item.url} ${item.lastModified.toISOString()} `).join('')} `; return new Response(minifyXML(sitemapContent), { status: 200, statusText: "OK", headers: { "Content-Type": "application/xml" } }); }) satisfies APIRoute;