improve error handling
This commit is contained in:
parent
c9fa93de72
commit
355febf927
12 changed files with 443 additions and 258 deletions
43
src/app.rs
43
src/app.rs
|
@ -1,5 +1,7 @@
|
|||
use semver::Version;
|
||||
|
||||
use crate::Error;
|
||||
|
||||
/// Gets the application name.
|
||||
///
|
||||
/// # Example
|
||||
|
@ -9,8 +11,10 @@ use semver::Version;
|
|||
/// const appName = await getName();
|
||||
/// ```
|
||||
#[inline(always)]
|
||||
pub async fn get_name() -> String {
|
||||
inner::getName().await.as_string().unwrap()
|
||||
pub async fn get_name() -> crate::Result<String> {
|
||||
let js_val = inner::getName().await.map_err(Error::Other)?;
|
||||
|
||||
Ok(serde_wasm_bindgen::from_value(js_val)?)
|
||||
}
|
||||
|
||||
/// Gets the application version.
|
||||
|
@ -23,8 +27,10 @@ pub async fn get_name() -> String {
|
|||
/// let version = get_version().await;
|
||||
/// ```
|
||||
#[inline(always)]
|
||||
pub async fn get_version() -> Version {
|
||||
Version::parse(&inner::getVersion().await.as_string().unwrap()).unwrap()
|
||||
pub async fn get_version() -> crate::Result<Version> {
|
||||
let js_val = inner::getVersion().await.map_err(Error::Other)?;
|
||||
|
||||
Ok(serde_wasm_bindgen::from_value(js_val)?)
|
||||
}
|
||||
|
||||
/// Gets the Tauri version.
|
||||
|
@ -37,8 +43,10 @@ pub async fn get_version() -> Version {
|
|||
/// let version = get_tauri_version().await;
|
||||
/// ```
|
||||
#[inline(always)]
|
||||
pub async fn get_tauri_version() -> Version {
|
||||
Version::parse(&inner::getTauriVersion().await.as_string().unwrap()).unwrap()
|
||||
pub async fn get_tauri_version() -> crate::Result<Version> {
|
||||
let js_val = inner::getTauriVersion().await.map_err(Error::Other)?;
|
||||
|
||||
Ok(serde_wasm_bindgen::from_value(js_val)?)
|
||||
}
|
||||
|
||||
/// Shows the application on macOS. This function does not automatically focuses any app window.
|
||||
|
@ -51,8 +59,8 @@ pub async fn get_tauri_version() -> Version {
|
|||
/// show().await;
|
||||
/// ```
|
||||
#[inline(always)]
|
||||
pub async fn show() {
|
||||
inner::show().await;
|
||||
pub async fn show() -> crate::Result<()> {
|
||||
inner::show().await.map_err(Error::Other)
|
||||
}
|
||||
|
||||
/// Hides the application on macOS.
|
||||
|
@ -65,8 +73,8 @@ pub async fn show() {
|
|||
/// hide().await;
|
||||
/// ```
|
||||
#[inline(always)]
|
||||
pub async fn hide() {
|
||||
inner::hide().await;
|
||||
pub async fn hide() -> crate::Result<()> {
|
||||
inner::hide().await.map_err(Error::Other)
|
||||
}
|
||||
|
||||
mod inner {
|
||||
|
@ -74,10 +82,15 @@ mod inner {
|
|||
|
||||
#[wasm_bindgen(module = "/dist/app.js")]
|
||||
extern "C" {
|
||||
pub async fn getName() -> JsValue;
|
||||
pub async fn getTauriVersion() -> JsValue;
|
||||
pub async fn getVersion() -> JsValue;
|
||||
pub async fn hide();
|
||||
pub async fn show();
|
||||
#[wasm_bindgen(catch)]
|
||||
pub async fn getName() -> Result<JsValue, JsValue>;
|
||||
#[wasm_bindgen(catch)]
|
||||
pub async fn getTauriVersion() -> Result<JsValue, JsValue>;
|
||||
#[wasm_bindgen(catch)]
|
||||
pub async fn getVersion() -> Result<JsValue, JsValue>;
|
||||
#[wasm_bindgen(catch)]
|
||||
pub async fn hide() -> Result<(), JsValue>;
|
||||
#[wasm_bindgen(catch)]
|
||||
pub async fn show() -> Result<(), JsValue>;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue