Skip to content

Commit 41bc007

Browse files
committed
Minify injected code
1 parent d1216f7 commit 41bc007

File tree

3 files changed

+19
-117
lines changed

3 files changed

+19
-117
lines changed

packages/bundler-plugin-core/src/utils.ts

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -314,28 +314,17 @@ export function generateGlobalInjectorCode({
314314
}): string {
315315
// The code below is mostly ternary operators because it saves bundle size.
316316
// The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.)
317-
let code = `(function(){
318-
var _global =
319-
typeof window !== 'undefined' ?
320-
window :
321-
typeof global !== 'undefined' ?
322-
global :
323-
typeof globalThis !== 'undefined' ?
324-
globalThis :
325-
typeof self !== 'undefined' ?
326-
self :
327-
{};
328-
329-
_global.SENTRY_RELEASE={id:${JSON.stringify(release)}};`;
317+
let code = `!function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};`;
318+
319+
code += `e.SENTRY_RELEASE={id:${JSON.stringify(release)}};`;
330320

331321
if (injectBuildInformation) {
332322
const buildInfo = getBuildInformation();
333323

334-
code += `
335-
_global.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;
324+
code += `e.SENTRY_BUILD_INFO=${JSON.stringify(buildInfo)};`;
336325
}
337326

338-
code += "})();";
327+
code += "}();";
339328

340329
return code;
341330
}
@@ -345,28 +334,7 @@ export function generateModuleMetadataInjectorCode(metadata: any): string {
345334
// The code below is mostly ternary operators because it saves bundle size.
346335
// The checks are to support as many environments as possible. (Node.js, Browser, webworkers, etc.)
347336
// We are merging the metadata objects in case modules are bundled twice with the plugin
348-
return `(function(){
349-
var _sentryModuleMetadataGlobal =
350-
typeof window !== "undefined"
351-
? window
352-
: typeof global !== "undefined"
353-
? global
354-
: typeof globalThis !== "undefined"
355-
? globalThis
356-
: typeof self !== "undefined"
357-
? self
358-
: {};
359-
360-
_sentryModuleMetadataGlobal._sentryModuleMetadata =
361-
_sentryModuleMetadataGlobal._sentryModuleMetadata || {};
362-
363-
_sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack] =
364-
Object.assign(
365-
{},
366-
_sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack],
367-
${JSON.stringify(metadata)}
368-
);
369-
})();`;
337+
return `!function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=Object.assign({},e._sentryModuleMetadata[(new e.Error).stack],${JSON.stringify(metadata)})}();`;
370338
}
371339

372340
export function getBuildInformation(): {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`generateGlobalInjectorCode generates code with release 1`] = `"!function(){var e=\\"undefined\\"!=typeof window?window:\\"undefined\\"!=typeof global?global:\\"undefined\\"!=typeof globalThis?globalThis:\\"undefined\\"!=typeof self?self:{};e.SENTRY_RELEASE={id:\\"1.2.3\\"};}();"`;
4+
5+
exports[`generateGlobalInjectorCode generates code with release and build information 1`] = `"!function(){var e=\\"undefined\\"!=typeof window?window:\\"undefined\\"!=typeof global?global:\\"undefined\\"!=typeof globalThis?globalThis:\\"undefined\\"!=typeof self?self:{};e.SENTRY_RELEASE={id:\\"1.2.3\\"};e.SENTRY_BUILD_INFO={\\"deps\\":[\\"myDep\\",\\"rollup\\"],\\"depsVersions\\":{\\"rollup\\":3},\\"nodeVersion\\":18};}();"`;
6+
7+
exports[`generateModuleMetadataInjectorCode generates code with empty metadata object 1`] = `"!function(){var e=\\"undefined\\"!=typeof window?window:\\"undefined\\"!=typeof global?global:\\"undefined\\"!=typeof globalThis?globalThis:\\"undefined\\"!=typeof self?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=Object.assign({},e._sentryModuleMetadata[(new e.Error).stack],{})}();"`;
8+
9+
exports[`generateModuleMetadataInjectorCode generates code with metadata object 1`] = `"!function(){var e=\\"undefined\\"!=typeof window?window:\\"undefined\\"!=typeof global?global:\\"undefined\\"!=typeof globalThis?globalThis:\\"undefined\\"!=typeof self?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=Object.assign({},e._sentryModuleMetadata[(new e.Error).stack],{\\"file1.js\\":{\\"foo\\":\\"bar\\"},\\"file2.js\\":{\\"bar\\":\\"baz\\"}})}();"`;

packages/bundler-plugin-core/test/utils.test.ts

Lines changed: 4 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -227,21 +227,7 @@ describe("generateGlobalInjectorCode", () => {
227227
injectBuildInformation: false,
228228
});
229229

230-
expect(generatedCode).toMatchInlineSnapshot(`
231-
"(function(){
232-
var _global =
233-
typeof window !== 'undefined' ?
234-
window :
235-
typeof global !== 'undefined' ?
236-
global :
237-
typeof globalThis !== 'undefined' ?
238-
globalThis :
239-
typeof self !== 'undefined' ?
240-
self :
241-
{};
242-
243-
_global.SENTRY_RELEASE={id:\\"1.2.3\\"};})();"
244-
`);
230+
expect(generatedCode).toMatchSnapshot();
245231
});
246232

247233
it("generates code with release and build information", () => {
@@ -262,52 +248,14 @@ describe("generateGlobalInjectorCode", () => {
262248
injectBuildInformation: true,
263249
});
264250

265-
expect(generatedCode).toMatchInlineSnapshot(`
266-
"(function(){
267-
var _global =
268-
typeof window !== 'undefined' ?
269-
window :
270-
typeof global !== 'undefined' ?
271-
global :
272-
typeof globalThis !== 'undefined' ?
273-
globalThis :
274-
typeof self !== 'undefined' ?
275-
self :
276-
{};
277-
278-
_global.SENTRY_RELEASE={id:\\"1.2.3\\"};
279-
_global.SENTRY_BUILD_INFO={\\"deps\\":[\\"myDep\\",\\"rollup\\"],\\"depsVersions\\":{\\"rollup\\":3},\\"nodeVersion\\":18};})();"
280-
`);
251+
expect(generatedCode).toMatchSnapshot();
281252
});
282253
});
283254

284255
describe("generateModuleMetadataInjectorCode", () => {
285256
it("generates code with empty metadata object", () => {
286257
const generatedCode = generateModuleMetadataInjectorCode({});
287-
expect(generatedCode).toMatchInlineSnapshot(`
288-
"(function(){
289-
var _sentryModuleMetadataGlobal =
290-
typeof window !== \\"undefined\\"
291-
? window
292-
: typeof global !== \\"undefined\\"
293-
? global
294-
: typeof globalThis !== \\"undefined\\"
295-
? globalThis
296-
: typeof self !== \\"undefined\\"
297-
? self
298-
: {};
299-
300-
_sentryModuleMetadataGlobal._sentryModuleMetadata =
301-
_sentryModuleMetadataGlobal._sentryModuleMetadata || {};
302-
303-
_sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack] =
304-
Object.assign(
305-
{},
306-
_sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack],
307-
{}
308-
);
309-
})();"
310-
`);
258+
expect(generatedCode).toMatchSnapshot();
311259
});
312260

313261
it("generates code with metadata object", () => {
@@ -319,29 +267,6 @@ describe("generateModuleMetadataInjectorCode", () => {
319267
bar: "baz",
320268
},
321269
});
322-
expect(generatedCode).toMatchInlineSnapshot(`
323-
"(function(){
324-
var _sentryModuleMetadataGlobal =
325-
typeof window !== \\"undefined\\"
326-
? window
327-
: typeof global !== \\"undefined\\"
328-
? global
329-
: typeof globalThis !== \\"undefined\\"
330-
? globalThis
331-
: typeof self !== \\"undefined\\"
332-
? self
333-
: {};
334-
335-
_sentryModuleMetadataGlobal._sentryModuleMetadata =
336-
_sentryModuleMetadataGlobal._sentryModuleMetadata || {};
337-
338-
_sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack] =
339-
Object.assign(
340-
{},
341-
_sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack],
342-
{\\"file1.js\\":{\\"foo\\":\\"bar\\"},\\"file2.js\\":{\\"bar\\":\\"baz\\"}}
343-
);
344-
})();"
345-
`);
270+
expect(generatedCode).toMatchSnapshot();
346271
});
347272
});

0 commit comments

Comments
 (0)