diff options
Diffstat (limited to 'ext/node/ops/idna.rs')
-rw-r--r-- | ext/node/ops/idna.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ext/node/ops/idna.rs b/ext/node/ops/idna.rs new file mode 100644 index 000000000..8f7cfe34a --- /dev/null +++ b/ext/node/ops/idna.rs @@ -0,0 +1,26 @@ +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. + +use deno_core::error::AnyError; +use deno_core::op; + +#[op] +pub fn op_node_idna_domain_to_ascii( + domain: String, +) -> Result<String, AnyError> { + Ok(idna::domain_to_ascii(&domain)?) +} + +#[op] +pub fn op_node_idna_domain_to_unicode(domain: String) -> String { + idna::domain_to_unicode(&domain).0 +} + +#[op] +pub fn op_node_idna_punycode_decode(domain: String) -> String { + idna::punycode::decode_to_string(&domain).unwrap_or_default() +} + +#[op] +pub fn op_node_idna_punycode_encode(domain: String) -> String { + idna::punycode::encode_str(&domain).unwrap_or_default() +} |