@@ -2,11 +2,18 @@ import { ImageResponse } from 'next/og';
2
2
3
3
import HexagonGrid from '@/components/Icons/HexagonGrid' ;
4
4
import JsIconWhite from '@/components/Icons/Logos/JsIconWhite' ;
5
- import { ENABLE_STATIC_EXPORT , VERCEL_REVALIDATE } from '@/next.constants.mjs' ;
5
+ import {
6
+ ENABLE_STATIC_EXPORT ,
7
+ VERCEL_ENV ,
8
+ VERCEL_REVALIDATE ,
9
+ } from '@/next.constants.mjs' ;
6
10
import { defaultLocale } from '@/next.locales.mjs' ;
7
11
import tailwindConfig from '@/tailwind.config' ;
8
12
import { hexToRGBA } from '@/util/hexToRGBA' ;
9
13
14
+ // This is the default type of blog post type that we use for OG
15
+ const defaultTypeParam = 'announcement' ;
16
+
10
17
// This is the Route Handler for the `GET` method which handles the request
11
18
// for generating OpenGrapgh images for Blog Posts and Pages
12
19
// @see https://nextjs.org/docs/app/building-your-application/routing/router-handlers
@@ -17,8 +24,8 @@ export const GET = async (request: Request) => {
17
24
const hasTitle = searchParams . has ( 'title' ) ;
18
25
const title = hasTitle ? searchParams . get ( 'title' ) ?. slice ( 0 , 100 ) : undefined ;
19
26
20
- //?type=<type> - if undefined default to announcement
21
- const typeParam = searchParams . get ( 'type' ) ?? 'announcement' ;
27
+ // ?type=<type> - if undefined default to announcement
28
+ const typeParam = searchParams . get ( 'type' ) ?? defaultTypeParam ;
22
29
23
30
const typeAttributes : { [ key : string ] : string } = {
24
31
announcement : tailwindConfig . theme . colors . green [ '700' ] ,
@@ -27,8 +34,7 @@ export const GET = async (request: Request) => {
27
34
} ;
28
35
29
36
// use the mapped value, or if not found use announcement
30
- const type =
31
- typeAttributes [ typeParam ] ?? tailwindConfig . theme . colors . green [ '700' ] ;
37
+ const type = typeAttributes [ typeParam ] ?? typeAttributes [ defaultTypeParam ] ;
32
38
33
39
const gridBackground = `radial-gradient(circle, ${ hexToRGBA ( type ) } , transparent)` ;
34
40
@@ -55,7 +61,8 @@ export const generateStaticParams = async () => [
55
61
] ;
56
62
57
63
// We want to use `edge` runtime when using Vercel
58
- export const runtime = process . env . NEXT_PUBLIC_VERCEL_URL ? 'edge' : false ;
64
+ // @see https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#runtime
65
+ export const runtime = VERCEL_ENV ? 'edge' : 'nodejs' ;
59
66
60
67
// Enforces that only the paths from `generateStaticParams` are allowed, giving 404 on the contrary
61
68
// @see https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamicparams
0 commit comments