import { ImageResponse } from "next/og"; import { readFile } from "node:fs/promises"; import { join } from "node:path"; export const size = { width: 1200, height: 630, }; export const contentType = "image/png"; export async function generateHomeImage() { return generateImage(
overreacted by Dan Abramov
, ); } export async function generatePostImage({ title }) { return generateImage(
overreacted by Dan Abramov
{title}
, ); } async function generateImage(jsx) { return new ImageResponse(jsx, { ...size, fonts: [ { name: "Montserrat", data: await montserratExtraBold, style: "normal", weight: 900, }, { name: "Merriweather", data: await merriweatherRegular, style: "normal", weight: 500, }, { name: "Merriweather", data: await merriweatherItalic, style: "italic", weight: 500, }, ], }); } const montserratExtraBold = readFile( join(process.cwd(), "og/Montserrat-ExtraBold.ttf"), ); const merriweatherRegular = readFile( join(process.cwd(), "og/Merriweather-Regular.ttf"), ); const merriweatherItalic = readFile( join(process.cwd(), "og/Merriweather-Italic.ttf"), );