Skip to content

Commit ade0a46

Browse files
committed
chore: properly replace the smallest preset value
1 parent 2eb503b commit ade0a46

File tree

5 files changed

+29
-8
lines changed

5 files changed

+29
-8
lines changed

dev-packages/rollup-utils/bundleHelpers.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
makeBannerOptions,
1616
makeTerserPlugin,
1717
} from './plugins/index.mjs';
18-
import { mergePlugins } from './utils.mjs';
18+
import { mergePlugins, treeShakePreset } from './utils.mjs';
1919

2020
const BUNDLE_VARIANTS = ['.js', '.min.js', '.debug.min.js'];
2121

@@ -109,7 +109,7 @@ export function makeBaseBundleConfig(options) {
109109
strict: false,
110110
esModule: false,
111111
},
112-
treeshake: 'smallest',
112+
treeshake: treeShakePreset('smallest'),
113113
};
114114

115115
const bundleTypeConfigMap = {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export * from './plugins/index.mjs';
22
export * from './bundleHelpers.mjs';
33
export * from './npmHelpers.mjs';
4-
export { insertAt } from './utils.mjs';
4+
export { insertAt, treeShakePreset } from './utils.mjs';

dev-packages/rollup-utils/utils.mjs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,22 @@ export function mergePlugins(pluginsA, pluginsB) {
3939

4040
return plugins;
4141
}
42+
43+
/**
44+
* Creates a treeshake setting preset, rolldown doesn't have "smallest" as a preset, so we need to create our own.
45+
* Smallest
46+
* https://rolldown.rs/options/treeshake#treeshake
47+
* https://rollupjs.org/configuration-options/#treeshake
48+
* @param {boolean | readonly string[] | ModuleSideEffectsRule[] | ((id: string, external: boolean) => boolean | undefined) | 'no-external' | 'smallest'} preset - The preset to use
49+
*/
50+
export function treeShakePreset(preset) {
51+
if (preset === 'smallest') {
52+
return {
53+
propertyReadSideEffects: false,
54+
moduleSideEffects: false,
55+
unknownGlobalSideEffects: false,
56+
};
57+
}
58+
59+
return preset;
60+
}

packages/replay-worker/rollup.examples.config.mjs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { treeShakePreset } from '@sentry-internal/rollup-utils';
12
import { defineConfig } from 'rolldown';
23

34
const config = defineConfig([
@@ -8,7 +9,7 @@ const config = defineConfig([
89
file: './examples/worker.js',
910
format: 'esm',
1011
},
11-
treeshake: 'smallest',
12+
treeshake: treeShakePreset('smallest'),
1213
},
1314
{
1415
input: ['./src/_worker.ts'],
@@ -17,7 +18,7 @@ const config = defineConfig([
1718
file: './examples/worker.min.js',
1819
format: 'esm',
1920
},
20-
treeshake: 'smallest',
21+
treeshake: treeShakePreset('smallest'),
2122
},
2223
]);
2324

packages/replay-worker/rollup.worker.config.mjs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
// inspired by https://justinribeiro.com/chronicle/2020/07/17/building-module-web-workers-for-cross-browser-compatibility-with-rollup/
22

3+
import { treeShakePreset } from '@sentry-internal/rollup-utils';
34
import { defineConfig } from 'rolldown';
45

56
const config = defineConfig([
67
{
78
input: ['./src/index.ts'],
8-
treeshake: 'smallest',
9+
treeshake: treeShakePreset('smallest'),
910
tsconfig: './tsconfig.build.json',
1011
output: {
1112
dir: './build/esm',
@@ -22,7 +23,7 @@ const config = defineConfig([
2223
format: 'esm',
2324
minify: true,
2425
},
25-
treeshake: 'smallest',
26+
treeshake: treeShakePreset('smallest'),
2627
plugins: [
2728
{
2829
name: 'worker-to-string',
@@ -40,7 +41,7 @@ const config = defineConfig([
4041
format: 'esm',
4142
minify: true,
4243
},
43-
treeshake: 'smallest',
44+
treeshake: treeShakePreset('smallest'),
4445
},
4546
]);
4647

0 commit comments

Comments
 (0)