Skip to content

ProbeTarget

Has anything changed? A cheap look between full fetches, so a change shows within seconds of the next look instead of at the next full fetch. Each look is a conditional request (If-None-Match with the last ETag): a service that answers 304 Not Modified for nothing new (GitHub does, and doesn’t count it against the rate limit) makes looking nearly free. Fetch fully only when changed.

Send the ETag yourself, as this does: Node’s fetch keeps no HTTP cache, and a service marking answers cacheable for a minute would hide a change behind one. And send Cache-Control: max-age=0 with it: on any conditional request Node’s fetch otherwise adds Cache-Control: no-cache, which a service may read as “send it all” (Vercel does, answering 200 where it would have said 304).

optional headers?: Record<string, string>

Authorization and whatever else the service needs.


url: string