summaryrefslogtreecommitdiff
path: root/cli/factory.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-04-12 00:17:10 +0100
committerGitHub <noreply@github.com>2024-04-12 01:17:10 +0200
commitf358ae627843182fb6aad69dae74f6d29788956b (patch)
treeb955ef5495bd7c7705aa9dbc909966962d44015f /cli/factory.rs
parentade0cd5e97e25896457624a0ec6bf524a5fa5c20 (diff)
fix(inspector): don't panic if port is not free (#22745)
Closes https://github.com/denoland/deno/issues/22113 Closes https://github.com/denoland/deno/issues/23177 Closes https://github.com/denoland/deno/issues/22883 Closes https://github.com/denoland/deno/issues/22377
Diffstat (limited to 'cli/factory.rs')
-rw-r--r--cli/factory.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/cli/factory.rs b/cli/factory.rs
index 6e5db8a80..56837110a 100644
--- a/cli/factory.rs
+++ b/cli/factory.rs
@@ -672,11 +672,15 @@ impl CliFactory {
})
}
- pub fn maybe_inspector_server(&self) -> &Option<Arc<InspectorServer>> {
- self
- .services
- .maybe_inspector_server
- .get_or_init(|| self.options.resolve_inspector_server().map(Arc::new))
+ pub fn maybe_inspector_server(
+ &self,
+ ) -> Result<&Option<Arc<InspectorServer>>, AnyError> {
+ self.services.maybe_inspector_server.get_or_try_init(|| {
+ match self.options.resolve_inspector_server() {
+ Ok(server) => Ok(server.map(Arc::new)),
+ Err(err) => Err(err),
+ }
+ })
}
pub async fn module_load_preparer(
@@ -789,7 +793,7 @@ impl CliFactory {
self.root_cert_store_provider().clone(),
self.fs().clone(),
maybe_file_watcher_communicator,
- self.maybe_inspector_server().clone(),
+ self.maybe_inspector_server()?.clone(),
self.maybe_lockfile().clone(),
self.feature_checker().clone(),
self.create_cli_main_worker_options()?,