import type { PublicProductRef } from "@imen/shared"; interface SitemapEntry { loc: string; priority: string; lastmod?: string; } export default defineEventHandler(async (event) => { const [categories, products] = await Promise.all([ fetchCategories(), serverApi("/public/products"), ]); const pages: SitemapEntry[] = [ { loc: "/", priority: "1" }, ...categories.map((c) => ({ loc: `/categories/${c.slug}`, priority: "0.8" })), ...products.map((p) => ({ loc: `/products/${p.slug}`, priority: "0.6", lastmod: p.updatedAt })), ]; setHeader(event, "Content-Type", "application/xml; charset=utf-8"); const lastmod = new Date().toISOString(); const urls = pages .map( (p) => `\n${absUrl(p.loc)}\n${p.lastmod ?? lastmod}\nweekly\n${p.priority}\n`, ) .join("\n"); return `\n\n${urls}\n\n`; });