summaryrefslogtreecommitdiff
path: root/ext/url
diff options
context:
space:
mode:
Diffstat (limited to 'ext/url')
-rw-r--r--ext/url/Cargo.toml3
-rw-r--r--ext/url/lib.rs2
-rw-r--r--ext/url/urlpattern.rs28
3 files changed, 18 insertions, 15 deletions
diff --git a/ext/url/Cargo.toml b/ext/url/Cargo.toml
index 13aca9953..557a4669e 100644
--- a/ext/url/Cargo.toml
+++ b/ext/url/Cargo.toml
@@ -2,7 +2,7 @@
[package]
name = "deno_url"
-version = "0.171.0"
+version = "0.177.0"
authors.workspace = true
edition.workspace = true
license.workspace = true
@@ -15,6 +15,7 @@ path = "lib.rs"
[dependencies]
deno_core.workspace = true
+thiserror.workspace = true
urlpattern = "0.3.0"
[dev-dependencies]
diff --git a/ext/url/lib.rs b/ext/url/lib.rs
index 6869d656b..f8946532a 100644
--- a/ext/url/lib.rs
+++ b/ext/url/lib.rs
@@ -15,6 +15,8 @@ use std::path::PathBuf;
use crate::urlpattern::op_urlpattern_parse;
use crate::urlpattern::op_urlpattern_process_match_input;
+pub use urlpattern::UrlPatternError;
+
deno_core::extension!(
deno_url,
deps = [deno_webidl],
diff --git a/ext/url/urlpattern.rs b/ext/url/urlpattern.rs
index b6d9a1382..7d4e8ee71 100644
--- a/ext/url/urlpattern.rs
+++ b/ext/url/urlpattern.rs
@@ -1,7 +1,5 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-use deno_core::error::type_error;
-use deno_core::error::AnyError;
use deno_core::op2;
use urlpattern::quirks;
@@ -9,21 +7,23 @@ use urlpattern::quirks::MatchInput;
use urlpattern::quirks::StringOrInit;
use urlpattern::quirks::UrlPattern;
+#[derive(Debug, thiserror::Error)]
+#[error(transparent)]
+pub struct UrlPatternError(urlpattern::Error);
+
#[op2]
#[serde]
pub fn op_urlpattern_parse(
#[serde] input: StringOrInit,
#[string] base_url: Option<String>,
#[serde] options: urlpattern::UrlPatternOptions,
-) -> Result<UrlPattern, AnyError> {
- let init = urlpattern::quirks::process_construct_pattern_input(
- input,
- base_url.as_deref(),
- )
- .map_err(|e| type_error(e.to_string()))?;
+) -> Result<UrlPattern, UrlPatternError> {
+ let init =
+ quirks::process_construct_pattern_input(input, base_url.as_deref())
+ .map_err(UrlPatternError)?;
- let pattern = urlpattern::quirks::parse_pattern(init, options)
- .map_err(|e| type_error(e.to_string()))?;
+ let pattern =
+ quirks::parse_pattern(init, options).map_err(UrlPatternError)?;
Ok(pattern)
}
@@ -33,14 +33,14 @@ pub fn op_urlpattern_parse(
pub fn op_urlpattern_process_match_input(
#[serde] input: StringOrInit,
#[string] base_url: Option<String>,
-) -> Result<Option<(MatchInput, quirks::Inputs)>, AnyError> {
- let res = urlpattern::quirks::process_match_input(input, base_url.as_deref())
- .map_err(|e| type_error(e.to_string()))?;
+) -> Result<Option<(MatchInput, quirks::Inputs)>, UrlPatternError> {
+ let res = quirks::process_match_input(input, base_url.as_deref())
+ .map_err(UrlPatternError)?;
let (input, inputs) = match res {
Some((input, inputs)) => (input, inputs),
None => return Ok(None),
};
- Ok(urlpattern::quirks::parse_match_input(input).map(|input| (input, inputs)))
+ Ok(quirks::parse_match_input(input).map(|input| (input, inputs)))
}