From e878f44ba0c02fab4de69f896bbc0ec0890928aa Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Sun, 17 Oct 2021 12:43:55 +0200 Subject: [PATCH] Use strip_with_jsx --- packages/transformers/js/core/src/lib.rs | 35 ++++++++++++++++-------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/packages/transformers/js/core/src/lib.rs b/packages/transformers/js/core/src/lib.rs index 2d616ee0eb9..09a0a472650 100644 --- a/packages/transformers/js/core/src/lib.rs +++ b/packages/transformers/js/core/src/lib.rs @@ -255,16 +255,6 @@ pub fn transform(config: Config) -> Result { let ignore_mark = Mark::fresh(Mark::root()); module = { let mut passes = chain!( - resolver_with_mark(global_mark), - Optional::new( - react::react( - source_map.clone(), - Some(&comments), - react_options, - global_mark - ), - config.is_jsx - ), // Decorators can use type information, so must run before the TypeScript pass. Optional::new( decorators::decorators(decorators::Config { @@ -274,9 +264,30 @@ pub fn transform(config: Config) -> Result { }), config.decorators ), - Optional::new(typescript::strip(), config.is_type_script), - // Run resolver again. TS pass messes things up. + Optional::new( + typescript::strip_with_jsx( + source_map.clone(), + typescript::Config { + pragma: Some(react_options.pragma.clone()), + pragma_frag: Some(react_options.pragma_frag.clone()), + ..Default::default() + }, + Some(&comments), + global_mark, + ), + config.is_type_script && config.is_jsx + ), + Optional::new(typescript::strip(), config.is_type_script && !config.is_jsx), resolver_with_mark(global_mark), + Optional::new( + react::react( + source_map.clone(), + Some(&comments), + react_options, + global_mark + ), + config.is_jsx + ), ); module.fold_with(&mut passes)