import { getSettings } from "@/content/settings/settings"; import type { APIRoute } from "astro"; import minifyXML from "minify-xml"; export const GET = (async () => { const settings = await getSettings(); let sitemapIndex: SitemapIndex[] = [ { url: "/sitemap/pages.xml", lastModified: new Date() } ]; if (settings.blog.enabled) { sitemapIndex.push({ url: "/sitemap/blogs.xml", lastModified: new Date() }); }; if (settings.project.enabled) { sitemapIndex.push({ url: "/sitemap/projects.xml", lastModified: new Date() }); }; if (settings.photo.enabled) { sitemapIndex.push({ url: "/sitemap/albums.xml", lastModified: new Date() }) }; let sitemapContent = ` ${sitemapIndex.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;