diff --git a/packages/@stylexjs/stylex/package.json b/packages/@stylexjs/stylex/package.json index e019ef591..ab95b4763 100644 --- a/packages/@stylexjs/stylex/package.json +++ b/packages/@stylexjs/stylex/package.json @@ -65,5 +65,6 @@ }, "files": [ "lib/*" - ] + ], + "sideEffects": false } diff --git a/packages/@stylexjs/stylex/rollup.config.mjs b/packages/@stylexjs/stylex/rollup.config.mjs index 1de6c89b6..91c18f3ce 100644 --- a/packages/@stylexjs/stylex/rollup.config.mjs +++ b/packages/@stylexjs/stylex/rollup.config.mjs @@ -31,6 +31,24 @@ const config = { babelHelpers: 'bundled', configFile: path.resolve(__dirname, '.babelrc.js'), }), + { + name: 'legacy-merge-export-pure', + transform(code, id) { + if (id === path.resolve(__dirname, 'src/stylex.js')) { + const newCode = code.replace( + 'export const legacyMerge =', + 'export const legacyMerge = /*@__PURE__*/', + ); + if (newCode === code) { + throw new Error( + 'Expect to find to "export const legacyMerge =" in src/stylex.js', + ); + } + return newCode; + } + return code; + }, + }, resolve(), commonjs(), ], diff --git a/packages/@stylexjs/stylex/src/stylex.js b/packages/@stylexjs/stylex/src/stylex.js index ff5185734..a6d9d318a 100644 --- a/packages/@stylexjs/stylex/src/stylex.js +++ b/packages/@stylexjs/stylex/src/stylex.js @@ -262,25 +262,26 @@ type IStyleX = { ... }; -function _legacyMerge( - ...styles: $ReadOnlyArray> -): string { - const [className] = styleq(styles); - return className; -} - -_legacyMerge.create = create; -_legacyMerge.createTheme = createTheme; -_legacyMerge.defineConsts = defineConsts; -_legacyMerge.defineMarker = defineMarker; -_legacyMerge.defineVars = defineVars; -_legacyMerge.defaultMarker = defaultMarker; -_legacyMerge.firstThatWorks = firstThatWorks; -_legacyMerge.keyframes = keyframes; -_legacyMerge.positionTry = positionTry; -_legacyMerge.props = props; -_legacyMerge.types = types; -_legacyMerge.when = when; -_legacyMerge.viewTransitionClass = viewTransitionClass; +export const legacyMerge: IStyleX = /*@__PURE__*/ (function () { + function _legacyMerge( + ...styles: $ReadOnlyArray> + ): string { + const [className] = styleq(styles); + return className; + } -export const legacyMerge: IStyleX = _legacyMerge; + _legacyMerge.create = create; + _legacyMerge.createTheme = createTheme; + _legacyMerge.defineConsts = defineConsts; + _legacyMerge.defineMarker = defineMarker; + _legacyMerge.defineVars = defineVars; + _legacyMerge.defaultMarker = defaultMarker; + _legacyMerge.firstThatWorks = firstThatWorks; + _legacyMerge.keyframes = keyframes; + _legacyMerge.positionTry = positionTry; + _legacyMerge.props = props; + _legacyMerge.types = types; + _legacyMerge.when = when; + _legacyMerge.viewTransitionClass = viewTransitionClass; + return _legacyMerge; +})();