import { readFile } from 'fs/promises'; import { ImageResponse } from 'next/og'; import { join } from 'path'; import LogoIcon from './icons/logo'; export type Props = { title?: string; }; async function getFont() { 'use cache'; const file = await readFile(join(process.cwd(), './fonts/Inter-Bold.ttf')); return Uint8Array.from(file).buffer; } export default async function OpengraphImage( props?: Props ): Promise { const { title } = { ...{ title: process.env.SITE_NAME }, ...props }; const font = await getFont(); return new ImageResponse( (

{title}

), { width: 1200, height: 630, fonts: [ { name: 'Inter', data: font, style: 'normal', weight: 700 } ] } ); }