diff options
Diffstat (limited to 'cli/ops/idna.rs')
-rw-r--r-- | cli/ops/idna.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/cli/ops/idna.rs b/cli/ops/idna.rs index c76ceba89..9585e0977 100644 --- a/cli/ops/idna.rs +++ b/cli/ops/idna.rs @@ -3,9 +3,9 @@ //! https://url.spec.whatwg.org/#idna use super::dispatch_json::{Deserialize, JsonOp, Value}; -use crate::op_error::OpError; use crate::state::State; use deno_core::CoreIsolate; +use deno_core::ErrBox; use deno_core::ZeroCopyBuf; use idna::{domain_to_ascii, domain_to_ascii_strict}; use std::rc::Rc; @@ -25,14 +25,16 @@ fn op_domain_to_ascii( _state: &Rc<State>, args: Value, _zero_copy: &mut [ZeroCopyBuf], -) -> Result<JsonOp, OpError> { +) -> Result<JsonOp, ErrBox> { let args: DomainToAscii = serde_json::from_value(args)?; - let domain = if args.be_strict { + if args.be_strict { domain_to_ascii_strict(args.domain.as_str()) - .map_err(|_| OpError::invalid_domain_error())? } else { domain_to_ascii(args.domain.as_str()) - .map_err(|_| OpError::invalid_domain_error())? - }; - Ok(JsonOp::Sync(json!(domain))) + } + .map_err(|err| { + let message = format!("Invalid IDNA encoded domain name: {:?}", err); + ErrBox::new("URIError", message) + }) + .map(|domain| JsonOp::Sync(json!(domain))) } |