Files
stats/apps/public/src/app/sitemap.ts
Carl-Gerhard Lindesvärd 8dfeaa870c docs: add guides to sitemap
2025-12-15 22:29:56 +01:00

82 lines
1.9 KiB
TypeScript

import { url } from '@/lib/layout.shared';
import {
articleSource,
compareSource,
guideSource,
pageSource,
source,
} from '@/lib/source';
import type { MetadataRoute } from 'next';
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const articles = await articleSource.getPages();
const docs = await source.getPages();
const pages = await pageSource.getPages();
const guides = await guideSource.getPages();
return [
{
url: url('/'),
lastModified: new Date(),
changeFrequency: 'yearly',
priority: 1,
},
{
url: url('/docs'),
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.8,
},
{
url: url('/pricing'),
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.8,
},
{
url: url('/articles'),
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.5,
},
{
url: url('/compare'),
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.5,
},
{
url: url('/supporter'),
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.7,
},
...articles.map((item) => ({
url: url(item.url),
lastModified: item.data.date,
changeFrequency: 'yearly' as const,
priority: 0.5,
})),
...guides.map((item) => ({
url: url(item.url),
lastModified: item.data.date,
changeFrequency: 'monthly' as const,
priority: 0.5,
})),
...docs.map((item) => ({
url: url(item.url),
changeFrequency: 'monthly' as const,
priority: 0.3,
})),
...pages.map((item) => ({
url: url(item.url),
changeFrequency: 'monthly' as const,
priority: 0.3,
})),
...compareSource.map((item) => ({
url: url(item.url),
changeFrequency: 'monthly' as const,
priority: 0.8,
})),
];
}