import type { ImageResponseOptions } from 'next/dist/compiled/@vercel/og/types'; import { ImageResponse } from 'next/og'; import type { ReactElement } from 'react'; interface GenerateProps { title?: string; subtitle?: string; } export function generateOGImage( options: GenerateProps & ImageResponseOptions, ): ImageResponse { const { title, subtitle, ...rest } = options; return new ImageResponse( generate({ title, subtitle, }), { width: 1200, height: 630, ...rest, }, ); } export function generate({ title = 'John Doe' }: GenerateProps): ReactElement { return (
20 ? 64 : 80, letterSpacing: '-0.04em', }} > {title}
); }