diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-04-12 00:17:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-12 01:17:10 +0200 |
commit | f358ae627843182fb6aad69dae74f6d29788956b (patch) | |
tree | b955ef5495bd7c7705aa9dbc909966962d44015f /cli/factory.rs | |
parent | ade0cd5e97e25896457624a0ec6bf524a5fa5c20 (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.rs | 16 |
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()?, |