From cddefecfff38215cef509aa6c0a2119682b49c15 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Fri, 23 Feb 2024 15:56:49 +0100 Subject: feat: infer dependencies from package.json (#22563) This PR enhances the `deno publish` command to infer dependencies from `package.json` if present. --- cli/tools/registry/mod.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'cli/tools/registry') diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index aea5dc634..ab02bc8d5 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -34,6 +34,7 @@ use crate::cache::ParsedSourceCache; use crate::factory::CliFactory; use crate::graph_util::ModuleGraphCreator; use crate::http_util::HttpClient; +use crate::resolver::MappedSpecifierResolver; use crate::tools::check::CheckOptions; use crate::tools::lint::no_slow_types; use crate::tools::registry::diagnostics::PublishDiagnostic; @@ -85,7 +86,7 @@ async fn prepare_publish( deno_json: &ConfigFile, source_cache: Arc, graph: Arc, - import_map: Arc, + mapped_resolver: Arc, diagnostics_collector: &PublishDiagnosticsCollector, ) -> Result, AnyError> { let config_path = deno_json.specifier.to_file_path().unwrap(); @@ -131,7 +132,7 @@ async fn prepare_publish( let diagnostics_collector = diagnostics_collector.clone(); let tarball = deno_core::unsync::spawn_blocking(move || { - let unfurler = ImportMapUnfurler::new(&import_map); + let unfurler = ImportMapUnfurler::new(&mapped_resolver); tar::create_gzipped_tarball( &dir_path, LazyGraphSourceParser::new(&source_cache, &graph), @@ -654,7 +655,7 @@ async fn prepare_packages_for_publishing( allow_slow_types: bool, diagnostics_collector: &PublishDiagnosticsCollector, deno_json: ConfigFile, - import_map: Arc, + mapped_resolver: Arc, ) -> Result { let members = deno_json.to_workspace_members()?; let module_graph_creator = cli_factory.module_graph_creator().await?.as_ref(); @@ -684,7 +685,7 @@ async fn prepare_packages_for_publishing( let results = members .into_iter() .map(|member| { - let import_map = import_map.clone(); + let mapped_resolver = mapped_resolver.clone(); let graph = graph.clone(); async move { let package = prepare_publish( @@ -692,7 +693,7 @@ async fn prepare_packages_for_publishing( &member.config_file, source_cache.clone(), graph, - import_map, + mapped_resolver, diagnostics_collector, ) .await @@ -806,6 +807,11 @@ pub async fn publish( Arc::new(ImportMap::new(Url::parse("file:///dev/null").unwrap())) }); + let mapped_resolver = Arc::new(MappedSpecifierResolver::new( + Some(import_map), + cli_factory.package_json_deps_provider().clone(), + )); + let directory_path = cli_factory.cli_options().initial_cwd(); let cli_options = cli_factory.cli_options(); @@ -823,7 +829,7 @@ pub async fn publish( publish_flags.allow_slow_types, &diagnostics_collector, config_file.clone(), - import_map, + mapped_resolver, ) .await?; -- cgit v1.2.3