summaryrefslogtreecommitdiff
path: root/cli/ops/idna.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops/idna.rs')
-rw-r--r--cli/ops/idna.rs16
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)))
}