Skip to content

Commit 856901f

Browse files
committed
merge upstream/main
2 parents 9b1d8d5 + 0385186 commit 856901f

File tree

18 files changed

+569
-57
lines changed

18 files changed

+569
-57
lines changed

Cargo.lock

Lines changed: 37 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,22 +62,22 @@ repository = "https://github.com/denoland/deno"
6262
deno_ast = { version = "=0.49", features = ["transpiling"] }
6363
deno_core = { version = "0.355.0" }
6464

65-
deno_cache_dir = "=0.24.0"
66-
deno_doc = "=0.181.0"
65+
deno_cache_dir = "=0.25.0"
66+
deno_doc = "=0.182.0"
6767
deno_error = "=0.7.0"
68-
deno_graph = { version = "=0.98.1", default-features = false }
68+
deno_graph = { version = "=0.99.0", default-features = false }
6969
deno_lint = "=0.77.0"
7070
deno_lockfile = "=0.31.2"
7171
deno_media_type = { version = "=0.2.9", features = ["module_specifier"] }
7272
deno_native_certs = "0.3.0"
73-
deno_npm = "=0.36.0"
73+
deno_npm = "=0.37.0"
7474
deno_path_util = "=0.6.1"
7575
deno_semver = "=0.9.0"
7676
deno_task_shell = "=0.26.0"
7777
deno_terminal = "=0.2.2"
7878
deno_unsync = { version = "0.4.4", default-features = false }
7979
deno_whoami = "0.1.0"
80-
eszip = "=0.95.0"
80+
eszip = "=0.96.0"
8181

8282
denokv_proto = "0.12.0"
8383
denokv_remote = "0.12.0"

cli/factory.rs

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ struct CliFactoryServices {
303303
fs: Deferred<Arc<dyn deno_fs::FileSystem>>,
304304
http_client_provider: Deferred<Arc<HttpClientProvider>>,
305305
main_graph_container: Deferred<Arc<MainModuleGraphContainer>>,
306-
maybe_file_watcher_reporter: Deferred<Option<FileWatcherReporter>>,
306+
graph_reporter: Deferred<Option<Arc<dyn deno_graph::source::Reporter>>>,
307307
maybe_inspector_server: Deferred<Option<Arc<InspectorServer>>>,
308308
memory_files: Arc<MemoryFiles>,
309309
module_graph_builder: Deferred<Arc<ModuleGraphBuilder>>,
@@ -319,6 +319,8 @@ struct CliFactoryServices {
319319
text_only_progress_bar: Deferred<ProgressBar>,
320320
type_checker: Deferred<Arc<TypeChecker>>,
321321
workspace_factory: Deferred<Arc<CliWorkspaceFactory>>,
322+
install_reporter:
323+
Deferred<Option<Arc<crate::tools::installer::InstallReporter>>>,
322324
}
323325

324326
#[derive(Debug, Default)]
@@ -568,6 +570,10 @@ impl CliFactory {
568570
None => Arc::new(NullLifecycleScriptsExecutor),
569571
},
570572
self.text_only_progress_bar().clone(),
573+
self
574+
.install_reporter()?
575+
.cloned()
576+
.map(|r| r as Arc<dyn deno_npm_installer::InstallReporter>),
571577
NpmInstallerFactoryOptions {
572578
cache_setting: NpmCacheSetting::from_cache_setting(
573579
&cli_options.cache_setting(),
@@ -582,6 +588,22 @@ impl CliFactory {
582588
})
583589
}
584590

591+
pub fn install_reporter(
592+
&self,
593+
) -> Result<Option<&Arc<crate::tools::installer::InstallReporter>>, AnyError>
594+
{
595+
self
596+
.services
597+
.install_reporter
598+
.get_or_try_init(|| match self.cli_options()?.sub_command() {
599+
DenoSubcommand::Install(InstallFlags::Local(_)) => Ok(Some(Arc::new(
600+
crate::tools::installer::InstallReporter::new(),
601+
))),
602+
_ => Ok(None),
603+
})
604+
.map(|opt| opt.as_ref())
605+
}
606+
585607
pub async fn npm_installer(&self) -> Result<&Arc<CliNpmInstaller>, AnyError> {
586608
self.npm_installer_factory()?.npm_installer().await
587609
}
@@ -622,15 +644,25 @@ impl CliFactory {
622644
self.resolver_factory()?.deno_resolver().await
623645
}
624646

625-
pub fn maybe_file_watcher_reporter(&self) -> &Option<FileWatcherReporter> {
626-
let maybe_file_watcher_reporter = self
627-
.watcher_communicator
628-
.as_ref()
629-
.map(|i| FileWatcherReporter::new(i.clone()));
630-
self
631-
.services
632-
.maybe_file_watcher_reporter
633-
.get_or_init(|| maybe_file_watcher_reporter)
647+
pub fn graph_reporter(
648+
&self,
649+
) -> Result<&Option<Arc<dyn deno_graph::source::Reporter>>, AnyError> {
650+
match self.cli_options()?.sub_command() {
651+
DenoSubcommand::Install(_) => {
652+
self.services.graph_reporter.get_or_try_init(|| {
653+
self.install_reporter().map(|opt| {
654+
opt.map(|r| r.clone() as Arc<dyn deno_graph::source::Reporter>)
655+
})
656+
})
657+
}
658+
_ => Ok(self.services.graph_reporter.get_or_init(|| {
659+
self
660+
.watcher_communicator
661+
.as_ref()
662+
.map(|i| FileWatcherReporter::new(i.clone()))
663+
.map(|i| Arc::new(i) as Arc<dyn deno_graph::source::Reporter>)
664+
})),
665+
}
634666
}
635667

636668
pub fn module_info_cache(&self) -> Result<&Arc<ModuleInfoCache>, AnyError> {
@@ -737,7 +769,7 @@ impl CliFactory {
737769
self.global_http_cache()?.clone(),
738770
self.in_npm_pkg_checker()?.clone(),
739771
self.maybe_lockfile().await?.cloned(),
740-
self.maybe_file_watcher_reporter().clone(),
772+
self.graph_reporter()?.clone(),
741773
self.module_info_cache()?.clone(),
742774
self.npm_graph_resolver().await?.clone(),
743775
self.npm_installer_if_managed().await?.cloned(),
@@ -748,6 +780,9 @@ impl CliFactory {
748780
self.root_permissions_container()?.clone(),
749781
self.sys(),
750782
self.compiler_options_resolver()?.clone(),
783+
self.install_reporter()?.cloned().map(|r| {
784+
r as Arc<dyn deno_resolver::file_fetcher::GraphLoaderReporter>
785+
}),
751786
)))
752787
}
753788
.boxed_local(),

cli/file_fetcher.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,7 @@ mod tests {
397397
"content-type".to_string(),
398398
"application/javascript".to_string(),
399399
)])),
400+
loaded_from: deno_cache_dir::file_fetcher::LoadedFrom::Local,
400401
};
401402
file_fetcher.insert_memory_files(file.clone());
402403

cli/graph_util.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ use deno_resolver::cache::ParsedSourceCache;
3434
use deno_resolver::deno_json::CompilerOptionsResolver;
3535
use deno_resolver::deno_json::JsxImportSourceConfigResolver;
3636
use deno_resolver::deno_json::ToMaybeJsxImportSourceConfigError;
37+
use deno_resolver::file_fetcher::GraphLoaderReporterRc;
3738
use deno_resolver::graph::EnhanceGraphErrorMode;
3839
use deno_resolver::graph::enhance_graph_error;
3940
use deno_resolver::graph::enhanced_integrity_error_message;
@@ -604,7 +605,7 @@ pub struct ModuleGraphBuilder {
604605
global_http_cache: Arc<GlobalHttpCache>,
605606
in_npm_pkg_checker: DenoInNpmPackageChecker,
606607
lockfile: Option<Arc<CliLockfile>>,
607-
maybe_file_watcher_reporter: Option<FileWatcherReporter>,
608+
maybe_reporter: Option<Arc<dyn deno_graph::source::Reporter>>,
608609
module_info_cache: Arc<ModuleInfoCache>,
609610
npm_graph_resolver: Arc<CliNpmGraphResolver>,
610611
npm_installer: Option<Arc<CliNpmInstaller>>,
@@ -615,6 +616,7 @@ pub struct ModuleGraphBuilder {
615616
root_permissions_container: PermissionsContainer,
616617
sys: CliSys,
617618
compiler_options_resolver: Arc<CompilerOptionsResolver>,
619+
load_reporter: Option<GraphLoaderReporterRc>,
618620
}
619621

620622
impl ModuleGraphBuilder {
@@ -627,7 +629,7 @@ impl ModuleGraphBuilder {
627629
global_http_cache: Arc<GlobalHttpCache>,
628630
in_npm_pkg_checker: DenoInNpmPackageChecker,
629631
lockfile: Option<Arc<CliLockfile>>,
630-
maybe_file_watcher_reporter: Option<FileWatcherReporter>,
632+
maybe_reporter: Option<Arc<dyn deno_graph::source::Reporter>>,
631633
module_info_cache: Arc<ModuleInfoCache>,
632634
npm_graph_resolver: Arc<CliNpmGraphResolver>,
633635
npm_installer: Option<Arc<CliNpmInstaller>>,
@@ -638,6 +640,7 @@ impl ModuleGraphBuilder {
638640
root_permissions_container: PermissionsContainer,
639641
sys: CliSys,
640642
compiler_options_resolver: Arc<CompilerOptionsResolver>,
643+
load_reporter: Option<GraphLoaderReporterRc>,
641644
) -> Self {
642645
Self {
643646
caches,
@@ -647,7 +650,7 @@ impl ModuleGraphBuilder {
647650
global_http_cache,
648651
in_npm_pkg_checker,
649652
lockfile,
650-
maybe_file_watcher_reporter,
653+
maybe_reporter,
651654
module_info_cache,
652655
npm_graph_resolver,
653656
npm_installer,
@@ -658,6 +661,7 @@ impl ModuleGraphBuilder {
658661
root_permissions_container,
659662
sys,
660663
compiler_options_resolver,
664+
load_reporter,
661665
}
662666
}
663667

@@ -696,10 +700,7 @@ impl ModuleGraphBuilder {
696700
self.cjs_tracker.as_ref(),
697701
&jsx_import_source_config_resolver,
698702
);
699-
let maybe_file_watcher_reporter = self
700-
.maybe_file_watcher_reporter
701-
.as_ref()
702-
.map(|r| r.as_reporter());
703+
let maybe_reporter = self.maybe_reporter.as_deref();
703704
let mut locker = self.lockfile.as_ref().map(|l| l.as_deno_graph_locker());
704705
self
705706
.build_graph_with_npm_resolution_and_build_options(
@@ -717,7 +718,7 @@ impl ModuleGraphBuilder {
717718
npm_resolver: Some(self.npm_graph_resolver.as_ref()),
718719
module_analyzer: &analyzer,
719720
module_info_cacher: self.module_info_cache.as_ref(),
720-
reporter: maybe_file_watcher_reporter,
721+
reporter: maybe_reporter,
721722
resolver: Some(&graph_resolver),
722723
locker: locker.as_mut().map(|l| l as _),
723724
unstable_bytes_imports: self.cli_options.unstable_raw_imports(),
@@ -926,6 +927,7 @@ impl ModuleGraphBuilder {
926927
deno_resolver::file_fetcher::DenoGraphLoaderOptions {
927928
file_header_overrides: self.cli_options.resolve_file_header_overrides(),
928929
permissions: Some(permissions),
930+
reporter: self.load_reporter.clone(),
929931
},
930932
)
931933
}
@@ -1014,10 +1016,6 @@ impl FileWatcherReporter {
10141016
file_paths: Default::default(),
10151017
}
10161018
}
1017-
1018-
pub fn as_reporter(&self) -> &dyn deno_graph::source::Reporter {
1019-
self
1020-
}
10211019
}
10221020

10231021
impl deno_graph::source::Reporter for FileWatcherReporter {

cli/lsp/config.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1480,6 +1480,7 @@ impl ConfigData {
14801480
)),
14811481
Arc::new(NullLifecycleScriptsExecutor),
14821482
pb,
1483+
None,
14831484
NpmInstallerFactoryOptions {
14841485
cache_setting: NpmCacheSetting::Use,
14851486
caching_strategy: NpmCachingStrategy::Eager,

0 commit comments

Comments
 (0)