1- import type { NextApiRequest } from 'next'
21import * as OS from 'os'
2+ import type { NextRequest } from 'next/server'
3+ import type { RequestContext } from '../middleware/createRequestContext'
34
45/* --- Constants ------------------------------------------------------------------------------- */
56
@@ -9,25 +10,30 @@ const ALIVE_SINCE = new Date()
910
1011type HealthCheckArgs = {
1112 echo : string
12- req : Request | NextApiRequest
13+ }
14+
15+ type HealthCheckInputs = {
16+ args : HealthCheckArgs ,
17+ context : RequestContext
1318}
1419
1520/** --- healthCheck() -------------------------------------------------------------------------- */
1621/** -i- Check the health status of the server. Includes relevant urls, server time(zone), versions and more */
17- export const healthCheck = async ( args : HealthCheckArgs ) => {
18- // Input
19- const { echo, req } = args
22+ export const healthCheck = async ( { args, context } : HealthCheckInputs ) => {
23+ // Inputs
24+ const { echo } = args
25+ const { req } = context
2026
2127 // Vars
2228 const now = new Date ( )
2329 const aliveTime = now . getTime ( ) - ALIVE_SINCE . getTime ( )
2430
2531 // Urls
2632 const r = req as Request
27- const rn = req as NextApiRequest
28- const reqHost = rn ?. headers ?. host
29- const reqProtocol = rn ?. headers ?. [ 'x-forwarded-proto' ] ?? 'http'
30- const requestURL = r ?. url ?? `${ reqProtocol } ://${ reqHost } /api/health`
33+ const rn = req as NextRequest
34+ const requestHost = rn ?. headers ?. get ?. ( ' host' )
35+ const requestProtocol = rn ?. headers ?. get ?. [ 'x-forwarded-proto' ] ?? 'http'
36+ const requestURL = r ?. url ?? `${ requestProtocol } ://${ requestHost } /api/health`
3137 const baseURL = process . env . BACKEND_URL || requestURL ?. split ( '/api/' ) [ 0 ]
3238 const apiURL = baseURL ? `${ baseURL } /api` : null
3339
@@ -46,6 +52,8 @@ export const healthCheck = async (args: HealthCheckArgs) => {
4652 aliveSince : ALIVE_SINCE . toISOString ( ) ,
4753 serverTimezone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone ,
4854 // URLS
55+ requestHost,
56+ requestProtocol,
4957 requestURL,
5058 baseURL,
5159 apiURL,
0 commit comments