svrjs-nextjs-website/app/sitemap.ts

42 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-08-24 06:28:25 +02:00
import { getAllBlogPostSlugs } from "@/lib/getBlogPost";
import clientPromise from "@/lib/db";
2024-08-24 06:28:25 +02:00
2024-07-28 17:20:53 +02:00
export default async function sitemap() {
const blogPostSlugs = await getAllBlogPostSlugs();
2024-08-24 06:28:25 +02:00
const baseRoutes = [
"/",
"/blog",
"/changelog",
"/contact",
"/contribute",
"/downloads",
"/mods",
"/privacy",
"/tos",
"/vulnerabilities",
"/newsletter"
].map((route) => ({
url: `https://svrjs.vercel.app${route}`,
lastModified: new Date().toISOString().split("T")[0]
}));
2024-08-24 06:28:25 +02:00
const blogRoutes = blogPostSlugs.map((slug) => ({
url: `https://svrjs.vercel.app/blog/${slug.slug}`,
lastModified: new Date().toISOString().split("T")[0]
}));
2024-07-28 17:20:53 +02:00
let changelogRoutes = [];
try {
const client = await clientPromise;
const db = client.db(process.env.MONGODB_DB);
const slugs = await db.collection("pages").find().toArray();
changelogRoutes = slugs.map((slug) => ({
url: `https://svrjs.vercel.app/changelog/${slug.slug}`,
lastModified: new Date().toISOString().split("T")[0]
}));
} catch (err) {}
return [...baseRoutes, ...blogRoutes, ...changelogRoutes];
2024-07-28 17:20:53 +02:00
}