SPB Git
1.3 KB · 14 lines typescript
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
Files · f05ed656dfb02e05e9363ab635689d5774c375f6
Menu

Theme