From 88f6fc6a1684326ae1f947ea8ec24ad0bff0f449 Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Mon, 20 Feb 2023 18:47:42 +0100 Subject: refactor: use ops for idna & punycode (#17817) Towards https://github.com/denoland/deno/issues/17809 --- ext/node/idna.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 ext/node/idna.rs (limited to 'ext/node/idna.rs') diff --git a/ext/node/idna.rs b/ext/node/idna.rs new file mode 100644 index 000000000..8f7cfe34a --- /dev/null +++ b/ext/node/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 { + 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() +} -- cgit v1.2.3