diff options
author | Leo Kettmeir <crowlkats@toaxl.com> | 2024-10-14 14:15:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-14 14:15:31 -0700 |
commit | 48cbf85add1a9a5c3e583c68c80d16420e606502 (patch) | |
tree | 4bc58cfa365dd100af46b5c60b356a5a3bbcac27 /ext/url | |
parent | cb385d9e4acbd81235c3784d7e56b49c3fa41dd3 (diff) |
refactor(ext/url): use concrete error types (#26172)
Diffstat (limited to 'ext/url')
-rw-r--r-- | ext/url/Cargo.toml | 1 | ||||
-rw-r--r-- | ext/url/lib.rs | 2 | ||||
-rw-r--r-- | ext/url/urlpattern.rs | 28 |
3 files changed, 17 insertions, 14 deletions
diff --git a/ext/url/Cargo.toml b/ext/url/Cargo.toml index 13aca9953..ca4fa444d 100644 --- a/ext/url/Cargo.toml +++ b/ext/url/Cargo.toml @@ -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))) } |