Revert "feat: improve performance"

This commit is contained in:
Torsten Dittmann
2024-06-07 00:09:12 +02:00
committed by GitHub
parent 0c7125ce87
commit 9f5fdb8e18
9 changed files with 472 additions and 171 deletions

View File

@@ -1,43 +1,36 @@
import { createRequire } from 'node:module';
import { defineEventHandler, setResponseHeader } from 'h3';
import { createRequire } from 'node:module'
/**
* @returns {Promise<import('h3').EventHandler>}
* @returns {Promise<import('express').RequestHandler>}
*/
export async function sitemap() {
console.info('Preparing Sitemap...');
const manifest = await import('../build/server/manifest.js');
const prerendered = manifest.prerendered;
const file_route_extensions = ['.json', '.xml'];
const routes = [...prerendered, ...collectThreads()].filter(
(route) => !file_route_extensions.some((ext) => route.endsWith(ext))
);
console.info(`Sitemap loaded with ${routes.length} routes!`);
const routes = [
...prerendered,
...collectThreads()
];
const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${routes
.map(
(route) => `<url>
${routes.filter(route => !route.endsWith('.json')).map(route => `<url>
<loc>https://appwrite.io${route}</loc>
</url>
`
)
.join('')}
`).join('')}
</urlset>`;
return defineEventHandler((event) => {
setResponseHeader(event, 'Content-Type', 'application/xml');
return sitemap;
});
return async (req, res, next) => {
if (req.url === '/sitemap.xml') {
res.setHeader('Content-Type', 'application/xml');
return res.send(sitemap);
}
next();
}
}
/**
* @returns {string[]}
*/
function collectThreads() {
const threads = createRequire(import.meta.url)('../build/prerendered/threads/data.json');
return threads.map((id) => `/threads/${id}`);
}
return threads.map(id => `/threads/${id}`);
}