diff options
| author | David Sherret <dsherret@users.noreply.github.com> | 2023-04-14 16:22:33 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-14 16:22:33 -0400 |
| commit | 136dce67cec749dce5989ea29e88359ef79a0045 (patch) | |
| tree | 38e96bbbf22dc06cdba418a35467b215f1335549 /cli/tools/vendor | |
| parent | a4111442191fff300132259752e6d2d5613d1871 (diff) | |
refactor: break up `ProcState` (#18707)
1. Breaks up functionality within `ProcState` into several other structs
to break out the responsibilities (`ProcState` is only a data struct
now).
2. Moves towards being able to inject dependencies more easily and have
functionality only require what it needs.
3. Exposes `Arc<T>` around the "service structs" instead of it being
embedded within them. The idea behind embedding them was to reduce the
verbosity of needing to pass around `Arc<...>`, but I don't think it was
exactly working and as we move more of these structs to be more
injectable I don't think the extra verbosity will be a big deal.
Diffstat (limited to 'cli/tools/vendor')
| -rw-r--r-- | cli/tools/vendor/mod.rs | 11 | ||||
| -rw-r--r-- | cli/tools/vendor/test.rs | 17 |
2 files changed, 15 insertions, 13 deletions
diff --git a/cli/tools/vendor/mod.rs b/cli/tools/vendor/mod.rs index 86af7d415..e75b19e2c 100644 --- a/cli/tools/vendor/mod.rs +++ b/cli/tools/vendor/mod.rs @@ -65,7 +65,7 @@ pub async fn vendor( ); if vendored_count > 0 { let import_map_path = raw_output_dir.join("import_map.json"); - if maybe_update_config_file(&output_dir, &ps) { + if maybe_update_config_file(&output_dir, &ps.options) { log::info!( concat!( "\nUpdated your local Deno configuration file with a reference to the ", @@ -147,15 +147,14 @@ fn validate_options( Ok(()) } -fn maybe_update_config_file(output_dir: &Path, ps: &ProcState) -> bool { +fn maybe_update_config_file(output_dir: &Path, options: &CliOptions) -> bool { assert!(output_dir.is_absolute()); - let config_file_specifier = match ps.options.maybe_config_file_specifier() { + let config_file_specifier = match options.maybe_config_file_specifier() { Some(f) => f, None => return false, }; - let fmt_config = ps - .options + let fmt_config = options .maybe_config_file() .as_ref() .and_then(|config| config.to_fmt_config().ok()) @@ -271,7 +270,7 @@ async fn create_graph( .map(|p| resolve_url_or_path(p, ps.options.initial_cwd())) .collect::<Result<Vec<_>, _>>()?; - ps.create_graph(entry_points).await + ps.module_graph_builder.create_graph(entry_points).await } #[cfg(test)] diff --git a/cli/tools/vendor/test.rs b/cli/tools/vendor/test.rs index c05e088a5..774ff0d58 100644 --- a/cli/tools/vendor/test.rs +++ b/cli/tools/vendor/test.rs @@ -263,18 +263,21 @@ async fn build_test_graph( mut loader: TestLoader, analyzer: &dyn deno_graph::ModuleAnalyzer, ) -> ModuleGraph { - let resolver = original_import_map.map(|m| { - let npm_registry_api = CliNpmRegistryApi::new_uninitialized(); - let npm_resolution = - NpmResolution::from_serialized(npm_registry_api.clone(), None, None); - let deps_installer = PackageJsonDepsInstaller::new( + let resolver = original_import_map.map(|original_import_map| { + let npm_registry_api = Arc::new(CliNpmRegistryApi::new_uninitialized()); + let npm_resolution = Arc::new(NpmResolution::from_serialized( + npm_registry_api.clone(), + None, + None, + )); + let deps_installer = Arc::new(PackageJsonDepsInstaller::new( npm_registry_api.clone(), npm_resolution.clone(), None, - ); + )); CliGraphResolver::new( None, - Some(Arc::new(m)), + Some(Arc::new(original_import_map)), false, npm_registry_api, npm_resolution, |
