feat: Update sitemap logic

This commit is contained in:
Thomas Camlong 2025-04-16 18:27:13 +02:00
parent d83edeedce
commit dc50e08440
No known key found for this signature in database
GPG Key ID: A678F374F428457B

View File

@ -1,36 +1,44 @@
import { BASE_URL, WEB_URL } from "@/constants"
import { getAllIcons } from "@/lib/api"
import type { MetadataRoute } from "next"
import { BASE_URL, WEB_URL } from "@/constants";
import { getAllIcons } from "@/lib/api";
import type { MetadataRoute } from "next";
export const dynamic = "force-static"
export const dynamic = "force-static";
// Helper function to format dates as YYYY-MM-DD
const formatDate = (date: Date): string => {
// Format to YYYY-MM-DD
return date.toISOString().split('T')[0];
};
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const iconsData = await getAllIcons()
const iconsData = await getAllIcons();
return [
{
url: WEB_URL,
lastModified: new Date(),
lastModified: formatDate(new Date()),
changeFrequency: "yearly",
priority: 1,
},
{
url: `${WEB_URL}/icons`,
lastModified: new Date(),
lastModified: formatDate(new Date()),
changeFrequency: "daily",
priority: 1,
images: [`${WEB_URL}/icons/icon.png`],
},
...Object.keys(iconsData).map((iconName) => ({
url: `${WEB_URL}/icons/${iconName}`,
lastModified: iconsData[iconName].update.timestamp,
lastModified: formatDate(new Date(iconsData[iconName].update.timestamp)),
changeFrequency: "yearly" as const,
priority: 0.8,
images: [
`${BASE_URL}/png/${iconName}.png`,
// SVG is conditional if it exists
iconsData[iconName].base === "svg" ? `${BASE_URL}/svg/${iconName}.svg` : null,
iconsData[iconName].base === "svg"
? `${BASE_URL}/svg/${iconName}.svg`
: null,
`${BASE_URL}/webp/${iconName}.webp`,
].filter(Boolean) as string[],
})),
]
];
}