diff --git a/packages/opentelemetry-core/src/platform/browser/environment.ts b/packages/opentelemetry-core/src/platform/browser/environment.ts index ea9514e4acb..9a1e8b99f38 100644 --- a/packages/opentelemetry-core/src/platform/browser/environment.ts +++ b/packages/opentelemetry-core/src/platform/browser/environment.ts @@ -21,11 +21,12 @@ import { parseEnvironment, } from '../../utils/environment'; +const _global = typeof globalThis === 'object' ? globalThis : window; + /** * Gets the environment variables */ export function getEnv(): Required { - const _window = window as typeof window & RAW_ENVIRONMENT; - const globalEnv = parseEnvironment(_window); + const globalEnv = parseEnvironment(_global as typeof globalThis & RAW_ENVIRONMENT); return Object.assign({}, DEFAULT_ENVIRONMENT, globalEnv); } diff --git a/packages/opentelemetry-core/test/platform/browser/environment.test.ts b/packages/opentelemetry-core/test/platform/browser/environment.test.ts new file mode 100644 index 00000000000..2f8a66b32e4 --- /dev/null +++ b/packages/opentelemetry-core/test/platform/browser/environment.test.ts @@ -0,0 +1,25 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as assert from 'assert'; +import { getEnv } from '../../../src/platform/browser/environment'; + +describe('getEnv', () => { + it('get environs in window', () => { + const env = getEnv(); + assert.strictEqual(typeof env, 'object'); + }); +});