use wasm_bindgen::{JsCast, JsValue};
pub fn js_error(value: JsValue) -> anyhow::Error {
if let Some(e) = value.dyn_ref::<js_sys::Error>() {
anyhow::Error::msg(String::from(e.message()))
} else if let Some(obj) = value.dyn_ref::<js_sys::Object>() {
return anyhow::Error::msg(String::from(obj.to_string()));
} else if let Some(s) = value.dyn_ref::<js_sys::JsString>() {
return anyhow::Error::msg(String::from(s));
} else {
anyhow::anyhow!("An unknown error occurred: {value:?}")
}
}