diff --git a/src/env/schema.mjs b/src/env/schema.mjs index 4cbffaf..9df5544 100644 --- a/src/env/schema.mjs +++ b/src/env/schema.mjs @@ -15,4 +15,5 @@ export const serverSchema = z.object({ MAX_DISTANCE: z.coerce.number().positive(), CENTER_LATITUDE: z.coerce.number().min(-90).max(90), CENTER_LONGITUDE: z.coerce.number().min(-180).max(180), + EDGE_CACHE_TIME_SECONDS: z.coerce.number().int().nonnegative().default(60), }); diff --git a/src/env/server.mjs b/src/env/server.mjs index 6f7d50b..6a324aa 100644 --- a/src/env/server.mjs +++ b/src/env/server.mjs @@ -16,6 +16,7 @@ const _serverEnv = serverSchema.safeParse({ MAX_DISTANCE: process.env.MAX_DISTANCE, CENTER_LATITUDE: process.env.CENTER_LATITUDE, CENTER_LONGITUDE: process.env.CENTER_LONGITUDE, + EDGE_CACHE_TIME_SECONDS: process.env.EDGE_CACHE_TIME_SECONDS, }); if (_serverEnv.success === false) { diff --git a/src/pages/api/cron.ts b/src/pages/api/cron.ts index 8485b75..8b03eb4 100644 --- a/src/pages/api/cron.ts +++ b/src/pages/api/cron.ts @@ -20,10 +20,11 @@ export default async function handler( return; } + const diff = await getDistance(); // auth passed - res.setHeader('Cache-Control', 'max-age=0, s-maxage=60, stale-while-revalidate'); + res.setHeader('Cache-Control', `max-age=0, s-maxage=${env.EDGE_CACHE_TIME_SECONDS}, stale-while-revalidate`); // @ts-ignore res.status(200).json({ diff, inRange: diff < env.MAX_DISTANCE }); }