From 867ab74dc62f3e68739a912e7184eb05e8f94795 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Fri, 9 Feb 2024 21:48:36 -0500 Subject: [PATCH] feat(build): Allow passing Sucrase options for rollup This allows you to configure Sucrase for rollup bundles. Needed for our work on the Feedback screenshotting feature as we want to use Preact + JSX in the project. (ref: https://github.com/getsentry/sentry-javascript/pull/10590) --- dev-packages/rollup-utils/bundleHelpers.mjs | 4 ++-- dev-packages/rollup-utils/npmHelpers.mjs | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dev-packages/rollup-utils/bundleHelpers.mjs b/dev-packages/rollup-utils/bundleHelpers.mjs index ec3f886abe67..79f76db80f9d 100644 --- a/dev-packages/rollup-utils/bundleHelpers.mjs +++ b/dev-packages/rollup-utils/bundleHelpers.mjs @@ -23,10 +23,10 @@ import { mergePlugins } from './utils.mjs'; const BUNDLE_VARIANTS = ['.js', '.min.js', '.debug.min.js']; export function makeBaseBundleConfig(options) { - const { bundleType, entrypoints, licenseTitle, outputFileBase, packageSpecificConfig } = options; + const { bundleType, entrypoints, licenseTitle, outputFileBase, packageSpecificConfig, sucrase } = options; const nodeResolvePlugin = makeNodeResolvePlugin(); - const sucrasePlugin = makeSucrasePlugin(); + const sucrasePlugin = makeSucrasePlugin(sucrase); const cleanupPlugin = makeCleanupPlugin(); const markAsBrowserBuildPlugin = makeBrowserBuildPlugin(true); const licensePlugin = makeLicensePlugin(licenseTitle); diff --git a/dev-packages/rollup-utils/npmHelpers.mjs b/dev-packages/rollup-utils/npmHelpers.mjs index 76391efebd27..096edb757930 100644 --- a/dev-packages/rollup-utils/npmHelpers.mjs +++ b/dev-packages/rollup-utils/npmHelpers.mjs @@ -29,10 +29,11 @@ export function makeBaseNPMConfig(options = {}) { hasBundles = false, packageSpecificConfig = {}, addPolyfills = true, + sucrase = {}, } = options; const nodeResolvePlugin = makeNodeResolvePlugin(); - const sucrasePlugin = makeSucrasePlugin({ disableESTransforms: !addPolyfills }); + const sucrasePlugin = makeSucrasePlugin({ disableESTransforms: !addPolyfills, ...sucrase }); const debugBuildStatementReplacePlugin = makeDebugBuildStatementReplacePlugin(); const cleanupPlugin = makeCleanupPlugin(); const extractPolyfillsPlugin = makeExtractPolyfillsPlugin();