From fc162162a155faf088f2b1a3343597c66d59d98c Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Fri, 29 Jan 2021 10:33:58 +0900 Subject: fix(cli): fix panic in Deno.emit (#9302) --- cli/ops/runtime_compiler.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'cli/ops/runtime_compiler.rs') diff --git a/cli/ops/runtime_compiler.rs b/cli/ops/runtime_compiler.rs index 481b29a11..60aa07bdd 100644 --- a/cli/ops/runtime_compiler.rs +++ b/cli/ops/runtime_compiler.rs @@ -10,6 +10,7 @@ use crate::specifier_handler::MemoryHandler; use crate::specifier_handler::SpecifierHandler; use deno_core::error::generic_error; +use deno_core::error::type_error; use deno_core::error::AnyError; use deno_core::error::Context; use deno_core::serde_json; @@ -55,6 +56,7 @@ async fn op_emit( ) -> Result { deno_runtime::ops::check_unstable2(&state, "Deno.emit"); let args: EmitArgs = serde_json::from_value(args)?; + let root_specifier = args.root_specifier; let program_state = state.borrow().borrow::>().clone(); let runtime_permissions = { let state = state.borrow(); @@ -92,9 +94,16 @@ async fn op_emit( None }; let mut builder = GraphBuilder::new(handler, maybe_import_map, None); - let root_specifier = - ModuleSpecifier::resolve_url_or_path(&args.root_specifier)?; - builder.add(&root_specifier, is_dynamic).await?; + let root_specifier = ModuleSpecifier::resolve_url_or_path(&root_specifier)?; + builder + .add(&root_specifier, is_dynamic) + .await + .map_err(|_| { + type_error(format!( + "Unable to handle the given specifier: {}", + &root_specifier + )) + })?; let bundle_type = match args.bundle { Some(RuntimeBundleType::Esm) => BundleType::Esm, _ => BundleType::None, -- cgit v1.2.3