import { Metadata } from "next"; type Embed = { /** * The title of the embed. */ title: string; /** * The title of the embed. */ embedTitle?: string; /** * The description of the embed. */ description: string; /** * The image to show as the thumbmail. */ image?: string; }; /** * Generates metadata for a embed. * * @param title the title of the embed * @param embedTitle the title of the embed * @param description the description of the embed * @param image the image to show as the thumbmail * @returns the metadata for the embed */ export function generateEmbed({ title, embedTitle, description, image }: Embed): Metadata { // Fall back to the title if (!embedTitle) { embedTitle = title; } const metadata: Metadata = { title: `${title}`, openGraph: { title: `${title}`, description: description, }, twitter: { card: "summary", }, }; if (image) { metadata.openGraph!.images = [ { url: image || "", }, ]; } return metadata; }