UNPKG

@dash0hq/sdk-web

Version:

Dash0's Web SDK to collect telemetry from end-users' web browsers

26 lines (25 loc) 1.03 kB
import { addAttribute } from "../utils/otel"; import { URL_DOMAIN, URL_FRAGMENT, URL_FULL, URL_PATH, URL_QUERY, URL_SCHEME } from "../semantic-conventions"; import { parseUrl } from "../utils/url"; export function addUrlAttributes(attributes, url) { try { const parsed = parseUrl(url); if (parsed.username) parsed.username = "REDACTED"; if (parsed.password) parsed.password = "REDACTED"; addAttribute(attributes, URL_FULL, parsed.href); addAttribute(attributes, URL_PATH, parsed.pathname); addAttribute(attributes, URL_DOMAIN, parsed.hostname); addAttribute(attributes, URL_SCHEME, parsed.protocol.replace(":", "")); if (parsed.hash) { addAttribute(attributes, URL_FRAGMENT, parsed.hash.replace("#", "")); } if (parsed.search) { addAttribute(attributes, URL_QUERY, parsed.search.replace("?", "")); } } catch (_e) { addAttribute(attributes, URL_FULL, String(url)); } }