spb/tools-spboucher-ai
Public
1import type { MetadataRoute } from "next";2import { allPublicSlugs, categoryTree, listCollections } from "@/lib/public/queries";3import { APP_URL } from "@/lib/env";4export const revalidate = 3600;5export default async function sitemap(): Promise<MetadataRoute.Sitemap> {6 const [tools, tree, cols] = await Promise.all([allPublicSlugs(), categoryTree(), listCollections()]);7 return [8 { url: `${APP_URL}/`, changeFrequency: "daily", priority: 1 }, { url: `${APP_URL}/tools`, changeFrequency: "daily", priority: 0.9 }, { url: `${APP_URL}/categories`, changeFrequency: "weekly", priority: 0.7 }, { url: `${APP_URL}/collections`, changeFrequency: "weekly", priority: 0.7 }, { url: `${APP_URL}/about`, changeFrequency: "monthly", priority: 0.4 },9 ...tree.flatMap((c) => [{ url: `${APP_URL}/categories/${c.slug}`, changeFrequency: "weekly" as const, priority: 0.6 }, ...c.children.map((x) => ({ url: `${APP_URL}/categories/${x.slug}`, changeFrequency: "weekly" as const, priority: 0.6 }))]),10 ...cols.map((c) => ({ url: `${APP_URL}/collections/${c.slug}`, lastModified: c.updatedAt, changeFrequency: "weekly" as const, priority: 0.7 })),11 ...tools.map((t) => ({ url: `${APP_URL}/tools/${t.slug}`, lastModified: t.updatedAt, changeFrequency: "monthly" as const, priority: 0.8 })),12 ];13}14