diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-11-09 12:26:39 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-09 12:26:39 +1100 |
commit | f5eb177f50a0bf37bc6bd9d87b447c73a53b6ea5 (patch) | |
tree | 1990dadf311de59b45c677e234219a161f3ebf9d /cli/tools/test.rs | |
parent | 45425c114610516287c8e5831c9b6f023dfc8180 (diff) |
feat(cli): support React 17 JSX transforms (#12631)
Closes #8440
Diffstat (limited to 'cli/tools/test.rs')
-rw-r--r-- | cli/tools/test.rs | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/cli/tools/test.rs b/cli/tools/test.rs index d883f18a3..fba178202 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -18,6 +18,7 @@ use crate::lockfile; use crate::ops; use crate::proc_state::ProcState; use crate::resolver::ImportMapResolver; +use crate::resolver::JsxResolver; use crate::tools::coverage::CoverageCollector; use deno_ast::swc::common::comments::CommentKind; @@ -1053,14 +1054,21 @@ pub async fn run_tests_with_watch( let paths_to_watch = paths_to_watch.clone(); let paths_to_watch_clone = paths_to_watch.clone(); - let maybe_resolver = - ps.maybe_import_map.as_ref().map(ImportMapResolver::new); + let maybe_import_map_resolver = + ps.maybe_import_map.clone().map(ImportMapResolver::new); + let maybe_jsx_resolver = ps + .maybe_config_file + .as_ref() + .map(|cf| { + cf.to_maybe_jsx_import_source_module() + .map(|im| JsxResolver::new(im, maybe_import_map_resolver.clone())) + }) + .flatten(); let maybe_locker = lockfile::as_maybe_locker(ps.lockfile.clone()); let maybe_imports = ps .maybe_config_file .as_ref() - .map(|cf| cf.to_maybe_imports()) - .flatten(); + .map(|cf| cf.to_maybe_imports()); let files_changed = changed.is_some(); let include = include.clone(); let ignore = ignore.clone(); @@ -1081,13 +1089,24 @@ pub async fn run_tests_with_watch( .filter_map(|url| deno_core::resolve_url(url.as_str()).ok()) .collect() }; - + let maybe_imports = if let Some(result) = maybe_imports { + result? + } else { + None + }; + let maybe_resolver = if maybe_jsx_resolver.is_some() { + maybe_jsx_resolver.as_ref().map(|jr| jr.as_resolver()) + } else { + maybe_import_map_resolver + .as_ref() + .map(|im| im.as_resolver()) + }; let graph = deno_graph::create_graph( test_modules.clone(), false, maybe_imports, cache.as_mut_loader(), - maybe_resolver.as_ref().map(|r| r.as_resolver()), + maybe_resolver, maybe_locker, None, ) |