use crate::prelude::internal::*;
pub fn set_panic_hook() {
#[cfg(feature = "console_error_panic_hook")]
console_error_panic_hook::set_once();
}
pub fn js_error_to_string(value: JsValue) -> String {
if let Some(error) = value.dyn_ref::<js_sys::Error>() {
let message: String = error.message().into();
let stack = Reflect::get(&value, &JsValue::from_str("stack"))
.ok()
.and_then(|stack| stack.as_string());
return match stack {
Some(stack) if !stack.is_empty() => stack,
_ => message,
};
}
if let Some(string) = value.as_string() {
return string;
}
if let Ok(message) = Reflect::get(&value, &JsValue::from_str("message"))
&& let Some(message) = message.as_string()
{
return message;
}
js_sys::JsString::from(value).into()
}