From 8b2c6fc2d22f0a62ceefa71ff739f81796142699 Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Sat, 12 Oct 2024 10:00:35 -0700 Subject: refactor(ext/canvas): use concrete error type (#26111) --- runtime/errors.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'runtime/errors.rs') diff --git a/runtime/errors.rs b/runtime/errors.rs index 59928965b..daec653d1 100644 --- a/runtime/errors.rs +++ b/runtime/errors.rs @@ -11,6 +11,7 @@ use deno_broadcast_channel::BroadcastChannelError; use deno_cache::CacheError; +use deno_canvas::CanvasError; use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::url; @@ -155,6 +156,13 @@ pub fn get_nix_error_class(error: &nix::Error) -> &'static str { } } +fn get_canvas_error(e: &CanvasError) -> &'static str { + match e { + CanvasError::UnsupportedColorType(_) => "TypeError", + CanvasError::Image(_) => "Error", + } +} + pub fn get_cache_error(error: &CacheError) -> &'static str { match error { CacheError::Sqlite(_) => "Error", @@ -186,6 +194,8 @@ pub fn get_error_class_name(e: &AnyError) -> Option<&'static str> { .or_else(|| deno_web::get_error_class_name(e)) .or_else(|| deno_webstorage::get_not_supported_error_class_name(e)) .or_else(|| deno_websocket::get_network_error_class_name(e)) + .or_else(|| deno_websocket::get_network_error_class_name(e)) + .or_else(|| e.downcast_ref::().map(get_canvas_error)) .or_else(|| e.downcast_ref::().map(get_cache_error)) .or_else(|| { e.downcast_ref::() -- cgit v1.2.3