import type { RumResourceEvent, RumResourceEventDomainContext } from '@datadog/browser-rum'; function isSameDomainRequest(url: string) { return new URL(url).hostname === window.location.hostname; } export function handleResource( event: RumResourceEvent, context: RumResourceEventDomainContext ): void { if (!isSameDomainRequest(event.resource.url)) { return; } let cfRay: string | undefined | null = undefined; switch (event.resource.type) { case 'fetch': cfRay = context.response?.headers.get('cf-ray'); break; case 'xhr': cfRay = context.xhr?.getResponseHeader('cf-ray'); break; } if (cfRay) { event.context = { ...event.context, cfRay }; } }