From 1e3e973ca2a87d3039671845b158480eda6ad263 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 7 Jan 2025 14:04:00 +0100 Subject: [PATCH 1/3] fix: Wrap injected code in self-invoking function to contain scope --- packages/bundler-plugin-core/src/utils.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/bundler-plugin-core/src/utils.ts b/packages/bundler-plugin-core/src/utils.ts index 6e7a09b4..49e6314d 100644 --- a/packages/bundler-plugin-core/src/utils.ts +++ b/packages/bundler-plugin-core/src/utils.ts @@ -314,7 +314,7 @@ export function generateGlobalInjectorCode({ }) { // The code below is mostly ternary operators because it saves bundle size. // The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.) - let code = ` + let code = `(function () { var _global = typeof window !== 'undefined' ? window : @@ -335,6 +335,8 @@ export function generateGlobalInjectorCode({ _global.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`; } + code += '})();'; + return code; } From 6eea7dae42815c97e9bd20fe9a379dd0aac39f83 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 7 Jan 2025 14:13:28 +0100 Subject: [PATCH 2/3] Fix --- packages/bundler-plugin-core/src/utils.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/bundler-plugin-core/src/utils.ts b/packages/bundler-plugin-core/src/utils.ts index 49e6314d..1c11042b 100644 --- a/packages/bundler-plugin-core/src/utils.ts +++ b/packages/bundler-plugin-core/src/utils.ts @@ -314,8 +314,8 @@ export function generateGlobalInjectorCode({ }) { // The code below is mostly ternary operators because it saves bundle size. // The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.) - let code = `(function () { - var _global = + let code = `{ + const _global = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? @@ -335,7 +335,7 @@ export function generateGlobalInjectorCode({ _global.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`; } - code += '})();'; + code += '}'; return code; } @@ -346,7 +346,7 @@ export function generateModuleMetadataInjectorCode(metadata: any) { // The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.) // We are merging the metadata objects in case modules are bundled twice with the plugin return `{ - var _sentryModuleMetadataGlobal = + const _sentryModuleMetadataGlobal = typeof window !== "undefined" ? window : typeof global !== "undefined" From 28fe7cb73bafe9f228fe24061de11e00b513bd8e Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 7 Jan 2025 14:16:33 +0100 Subject: [PATCH 3/3] Lint and update snapshots --- packages/bundler-plugin-core/src/utils.ts | 2 +- packages/bundler-plugin-core/test/utils.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/bundler-plugin-core/src/utils.ts b/packages/bundler-plugin-core/src/utils.ts index 1c11042b..4ad7e01e 100644 --- a/packages/bundler-plugin-core/src/utils.ts +++ b/packages/bundler-plugin-core/src/utils.ts @@ -335,7 +335,7 @@ export function generateGlobalInjectorCode({ _global.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`; } - code += '}'; + code += "}"; return code; } diff --git a/packages/bundler-plugin-core/test/utils.test.ts b/packages/bundler-plugin-core/test/utils.test.ts index b996a47c..2098ef46 100644 --- a/packages/bundler-plugin-core/test/utils.test.ts +++ b/packages/bundler-plugin-core/test/utils.test.ts @@ -221,7 +221,7 @@ describe("generateModuleMetadataInjectorCode", () => { const generatedCode = generateModuleMetadataInjectorCode({}); expect(generatedCode).toMatchInlineSnapshot(` "{ - var _sentryModuleMetadataGlobal = + const _sentryModuleMetadataGlobal = typeof window !== \\"undefined\\" ? window : typeof global !== \\"undefined\\" @@ -256,7 +256,7 @@ describe("generateModuleMetadataInjectorCode", () => { }); expect(generatedCode).toMatchInlineSnapshot(` "{ - var _sentryModuleMetadataGlobal = + const _sentryModuleMetadataGlobal = typeof window !== \\"undefined\\" ? window : typeof global !== \\"undefined\\"