import type { PropagatorType, RumInitConfiguration } from '@datadog/browser-rum'; import { datadogRum } from '@datadog/browser-rum'; export type { PropagatorType }; interface Matcher { match: (url: string) => boolean; propagatorTypes?: PropagatorType[] | null; } export function isAllowedTracingUrl( matchers: NonNullable, url: string, propagator: PropagatorType = 'tracecontext' ): boolean { const matcher = matchers.find( (candidate): candidate is Matcher => typeof candidate === 'object' && 'propagatorTypes' in candidate && !!candidate.propagatorTypes?.includes(propagator) ); return matcher?.match(url) ?? false; } export function getInitAllowedTracingUrls(): NonNullable< RumInitConfiguration['allowedTracingUrls'] > { const call = jest.mocked(datadogRum.init).mock.calls.at(-1)![0]; return call.allowedTracingUrls!; }