1use gloo_utils::errors::JsError;
4use wasm_bindgen::{JsCast, JsValue};
5
6#[derive(Debug, thiserror::Error)]
8pub enum StorageError {
9 #[error("{0}")]
11 SerdeError(#[from] serde_json::Error),
12 #[error("key {0} not found")]
14 KeyNotFound(String),
15 #[error("{0}")]
17 JsError(JsError),
18}
19
20pub(crate) fn js_to_error(js_value: JsValue) -> StorageError {
21 match js_value.dyn_into::<js_sys::Error>() {
22 Ok(error) => StorageError::JsError(JsError::from(error)),
23 Err(_) => unreachable!("JsValue passed is not an Error type - this is a bug"),
24 }
25}