import "server-only"; import type { Metadata } from "next"; import { getSeoPage, getSeoSettings } from "@/lib/data"; import { siteConfig } from "@/lib/site-config"; export async function buildMetadata(path: string, fallback?: Metadata): Promise { const [settings, override] = await Promise.all([ getSeoSettings(), getSeoPage(path), ]); const siteName = settings?.site_name || siteConfig.name; const siteDesc = settings?.site_description || siteConfig.tagline; const ogDefault = settings?.default_og_image || "/logo.png"; const title = override?.title ?? (fallback?.title as string | undefined) ?? siteName; const description = override?.description ?? (fallback?.description as string | undefined) ?? siteDesc; const ogImage = override?.og_image || ogDefault; return { title, description, metadataBase: new URL(siteConfig.url), openGraph: { title, description, images: ogImage ? [{ url: ogImage }] : undefined, type: "website", locale: "tr_TR", siteName, }, twitter: { card: "summary_large_image", title, description, images: ogImage ? [ogImage] : undefined, site: settings?.twitter_handle ?? undefined, }, alternates: override?.canonical ? { canonical: override.canonical } : undefined, robots: override?.noindex ? { index: false, follow: false } : undefined, verification: settings?.google_site_verification ? { google: settings.google_site_verification } : undefined, }; }