diff --git a/src/routes/(client)/sitemap.xml/+server.js b/src/routes/(client)/sitemap.xml/+server.js new file mode 100644 index 0000000..b26eafa --- /dev/null +++ b/src/routes/(client)/sitemap.xml/+server.js @@ -0,0 +1,32 @@ +export async function GET({ fetch, setHeaders }) { + setHeaders({ + 'Content-Type': 'application/xml' + }); + + const site = 'https://koreanskincareandclinic.com'; + const response = await fetch('https://api.koreanskincareandclinic.com/api/product'); + if (!response.ok) { + throw new Error('Failed to fetch posts.'); + } + const products = await response.json(); + + const sitemap = ` + + +${site} +daily +0.7 + +${products.products + .map( + (/** @type {{ id: any;slug:string; published_at: string; }} */ product) => ` + +${site}/product/${product.id}/${product.slug} +weekly + +` + ) + .join('')} +`; + return new Response(sitemap); +}