Skip to content

Commit c046867

Browse files
authored
fix(resources): ensure BrowserDetector does not think Node.js v21 is a browser (#4604)
Fixes: #4561
1 parent b78d443 commit c046867

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/
1414
### :bug: (Bug Fix)
1515

1616
* fix(sdk-trace-web): fix invalid timings in span events [#4486](https://github.com/open-telemetry/opentelemetry-js/pull/4486) @Abinet18
17+
* fix(resources): ensure BrowserDetector does not think Node.js v21 is a browser [#4561](https://github.com/open-telemetry/opentelemetry-js/issues/4561) @trentm
1718

1819
### :books: (Refine Doc)
1920

packages/opentelemetry-resources/src/detectors/BrowserDetectorSync.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ import { diag } from '@opentelemetry/api';
2424
*/
2525
class BrowserDetectorSync implements DetectorSync {
2626
detect(config?: ResourceDetectionConfig): IResource {
27-
const isBrowser = typeof navigator !== 'undefined';
27+
const isBrowser =
28+
typeof navigator !== 'undefined' &&
29+
global.process?.versions?.node === undefined && // Node.js v21 adds `navigator`
30+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
31+
// @ts-ignore don't have Bun types
32+
global.Bun?.version === undefined; // Bun (bun.sh) defines `navigator`
2833
if (!isBrowser) {
2934
return Resource.empty();
3035
}

0 commit comments

Comments
 (0)