import { createRequire } from 'node:module' /** * @returns {Promise} */ export async function sitemap() { const manifest = await import('../build/server/manifest.js'); const prerendered = manifest.prerendered; const routes = [ ...prerendered, ...collectThreads() ]; const sitemap = ` ${routes.filter(route => !route.endsWith('.json')).map(route => ` https://appwrite.io${route} `).join('')} `; return async (req, res, next) => { if (req.url === '/sitemap.xml') { res.setHeader('Content-Type', 'application/xml'); return res.send(sitemap); } next(); } } function collectThreads() { const threads = createRequire(import.meta.url)('../build/prerendered/threads/data.json'); return threads.map(id => `/threads/${id}`); }