mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-06 04:22:07 +00:00
Revert "feat: improve performance"
This commit is contained in:
@@ -1,17 +1,16 @@
|
||||
import { createApp, fromNodeMiddleware, toNodeListener } from 'h3';
|
||||
import { createServer } from 'node:http';
|
||||
import express from 'express';
|
||||
import compression from 'compression'
|
||||
import { sitemap } from './sitemap.js'
|
||||
import { handler } from '../build/handler.js';
|
||||
import { sitemap } from './sitemap.js';
|
||||
|
||||
async function main() {
|
||||
const port = process.env.PORT || 3000;
|
||||
const app = createApp();
|
||||
app.use('/sitemap.xml', await sitemap());
|
||||
app.use(fromNodeMiddleware(handler));
|
||||
const server = createServer(toNodeListener(app)).listen(port);
|
||||
server.addListener('listening', () => {
|
||||
console.log(`Listening on http://0.0.0.0:${port}`);
|
||||
const app = express();
|
||||
app.use(compression());
|
||||
app.use(await sitemap());
|
||||
app.use(handler);
|
||||
app.listen(3000, () => {
|
||||
console.log('Listening on http://0.0.0.0:3000');
|
||||
});
|
||||
}
|
||||
|
||||
main();
|
||||
main();
|
||||
@@ -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}`);
|
||||
}
|
||||
Reference in New Issue
Block a user