Vercel/src/app/home-image/route.tsx
2024-01-06 14:44:54 -06:00

31 lines
851 B
TypeScript

import { auth } from '@/auth';
import { getImageCacheHeadersForAuth, getPhotosCached } from '@/cache';
import {
IMAGE_OG_DIMENSION_SMALL,
MAX_PHOTOS_TO_SHOW_OG,
} from '@/photo/image-response';
import HomeImageResponse from '@/photo/image-response/HomeImageResponse';
import { getIBMPlexMonoMedium } from '@/site/font';
import { ImageResponse } from 'next/og';
export const runtime = 'edge';
export async function GET() {
const [
photos,
headers,
{ fontFamily, fonts },
] = await Promise.all([
getPhotosCached({ limit: MAX_PHOTOS_TO_SHOW_OG }),
getImageCacheHeadersForAuth(await auth()),
getIBMPlexMonoMedium(),
]);
const { width, height } = IMAGE_OG_DIMENSION_SMALL;
return new ImageResponse(
<HomeImageResponse {...{ photos, width, height, fontFamily }}/>,
{ width, height, headers, fonts },
);
}