// ...import { SitemapStream, streamToPromise } from 'sitemap'
export async function GET() { const hostname = 'https://www.launchfa.st' const smStream = new SitemapStream({ hostname }) const slugs = [/* static slugs */] try { slugs.forEach((url) => { smStream.write({ /* url config */ }) }) // ... smStream.end() const sitemap = await streamToPromise(smStream) return webResponse(sitemap, 200, { 'Content-Type': 'text/xml', }) } catch (e: any) { // handle errors }}
LaunchFa.st comes with a sitemap.xml.ts
Astro endpoint that creates a sitemap as a streaming response, making it available to crawlers such as Google as soon as they request the page. This was quickly done with the help of sitemap
package on npm: https://npmjs.com/package/sitemap.
With Astro’s prerender
configuration flag per page or endpoint, the sitemaps can also be pre-rendered and also later be statically re-generated using ISR.