diff --git a/.changeset/fancy-steaks-itch.md b/.changeset/fancy-steaks-itch.md new file mode 100644 index 000000000..11fa2cbac --- /dev/null +++ b/.changeset/fancy-steaks-itch.md @@ -0,0 +1,5 @@ +--- +"@callstack/repack": patch +--- + +Handle 'transform-dynamic-import' in `babel-swc-loader` diff --git a/packages/repack/src/loaders/babelSwcLoader/swc.ts b/packages/repack/src/loaders/babelSwcLoader/swc.ts index 353449d83..206952ea0 100644 --- a/packages/repack/src/loaders/babelSwcLoader/swc.ts +++ b/packages/repack/src/loaders/babelSwcLoader/swc.ts @@ -41,6 +41,7 @@ const SWC_SUPPORTED_CUSTOM_RULES = new Set([ 'transform-react-jsx', 'transform-modules-commonjs', 'proposal-export-default-from', + 'transform-dynamic-import', ]); function getTransformRuntimeConfig( @@ -135,6 +136,22 @@ function getTransformExportDefaultFromConfig( }; } +function getTransformDynamicImportConfig( + swcConfig: SwcLoaderOptions +): SwcLoaderOptions { + return { + ...swcConfig, + jsc: { + ...swcConfig.jsc, + parser: { + ...swcConfig.jsc?.parser, + syntax: swcConfig.jsc?.parser?.syntax!, + dynamicImport: true, + }, + }, + }; +} + function getTransformClassPropertiesConfig( swcConfig: SwcLoaderOptions, ruleConfig: Record = { loose: false } @@ -244,6 +261,7 @@ const SWC_SUPPORTED_CUSTOM_RULES_MAP = { 'transform-react-jsx-source': getTransformReactDevelopmentConfig, 'transform-modules-commonjs': getTransformModulesCommonjsConfig, 'proposal-export-default-from': getTransformExportDefaultFromConfig, + 'transform-dynamic-import': getTransformDynamicImportConfig, }; export function getSupportedSwcNormalTransforms(