diff --git a/packages/tracing/src/browser/browsertracing.ts b/packages/tracing/src/browser/browsertracing.ts index 20ff9effdb0e..63ff481a417e 100644 --- a/packages/tracing/src/browser/browsertracing.ts +++ b/packages/tracing/src/browser/browsertracing.ts @@ -294,6 +294,10 @@ export function extractTraceDataFromMetaTags(): Partial | un /** Returns the value of a meta tag */ export function getMetaContent(metaName: string): string | null { + // Can't specify generic to `getDomElement` because tracing can be used + // in a variety of environments, have to disable `no-unsafe-member-access` + // as a result. const metaTag = getDomElement(`meta[name=${metaName}]`); + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access return metaTag ? metaTag.getAttribute('content') : null; } diff --git a/packages/utils/src/browser.ts b/packages/utils/src/browser.ts index c11cf22950f8..62d38077054b 100644 --- a/packages/utils/src/browser.ts +++ b/packages/utils/src/browser.ts @@ -129,14 +129,21 @@ export function getLocationHref(): string { * This wrapper will first check for the existance of the function before * actually calling it so that we don't have to take care of this check, * every time we want to access the DOM. - * Reason: DOM/querySelector is not available in all environments + * + * Reason: DOM/querySelector is not available in all environments. + * + * We have to cast to any because utils can be consumed by a variety of environments, + * and we don't want to break TS users. If you know what element will be selected by + * `document.querySelector`, specify it as part of the generic call. For example, + * `const element = getDomElement('selector');` * * @param selector the selector string passed on to document.querySelector */ -export function getDomElement(selector: string): Element | null { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function getDomElement(selector: string): E | null { const global = getGlobalObject(); if (global.document && global.document.querySelector) { - return global.document.querySelector(selector); + return global.document.querySelector(selector) as unknown as E; } return null; }