From 6bedf793e883be5a790d389a3154c7397bb8c957 Mon Sep 17 00:00:00 2001 From: jkomyno Date: Mon, 27 Nov 2023 15:17:30 +0100 Subject: [PATCH] chore(driver-adapters): unify napi/wasm errors into "crate::JsResult" --- query-engine/driver-adapters/src/lib.rs | 14 ++++++++++++++ query-engine/driver-adapters/src/napi/proxy.rs | 7 ++++--- query-engine/driver-adapters/src/wasm/proxy.rs | 15 +++++++-------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/query-engine/driver-adapters/src/lib.rs b/query-engine/driver-adapters/src/lib.rs index 0e40b814c43..625d8f6bcbd 100644 --- a/query-engine/driver-adapters/src/lib.rs +++ b/query-engine/driver-adapters/src/lib.rs @@ -24,3 +24,17 @@ pub mod wasm; #[cfg(target_arch = "wasm32")] pub use wasm::*; + +#[cfg(target_arch = "wasm32")] +mod arch { + use wasm_bindgen::JsValue; + + pub(crate) type JsResult = core::result::Result; +} + +#[cfg(not(target_arch = "wasm32"))] +mod arch { + pub(crate) type JsResult = napi::Result; +} + +pub(crate) use arch::JsResult; diff --git a/query-engine/driver-adapters/src/napi/proxy.rs b/query-engine/driver-adapters/src/napi/proxy.rs index 7a9c760fa67..fd61f87847b 100644 --- a/query-engine/driver-adapters/src/napi/proxy.rs +++ b/query-engine/driver-adapters/src/napi/proxy.rs @@ -1,4 +1,5 @@ pub use crate::types::{ColumnType, JSResultSet, Query, TransactionOptions}; +use crate::JsResult; use super::async_js_function::AsyncJsFunction; use super::transaction::JsTransaction; @@ -43,7 +44,7 @@ pub(crate) struct TransactionProxy { } impl CommonProxy { - pub fn new(object: &JsObject) -> napi::Result { + pub fn new(object: &JsObject) -> JsResult { let flavour: JsString = object.get_named_property("flavour")?; Ok(Self { @@ -63,7 +64,7 @@ impl CommonProxy { } impl DriverProxy { - pub fn new(driver_adapter: &JsObject) -> napi::Result { + pub fn new(driver_adapter: &JsObject) -> JsResult { Ok(Self { start_transaction: driver_adapter.get_named_property("startTransaction")?, }) @@ -82,7 +83,7 @@ impl DriverProxy { } impl TransactionProxy { - pub fn new(js_transaction: &JsObject) -> napi::Result { + pub fn new(js_transaction: &JsObject) -> JsResult { let commit = js_transaction.get_named_property("commit")?; let rollback = js_transaction.get_named_property("rollback")?; let options = js_transaction.get_named_property("options")?; diff --git a/query-engine/driver-adapters/src/wasm/proxy.rs b/query-engine/driver-adapters/src/wasm/proxy.rs index 84c06e86761..b9d98739d69 100644 --- a/query-engine/driver-adapters/src/wasm/proxy.rs +++ b/query-engine/driver-adapters/src/wasm/proxy.rs @@ -1,16 +1,15 @@ -use futures::Future; -use js_sys::{Function as JsFunction, JsString}; -use tsify::Tsify; - -use super::{async_js_function::AsyncJsFunction, transaction::JsTransaction}; use crate::send_future::SendFuture; pub use crate::types::{ColumnType, JSResultSet, Query, TransactionOptions}; use crate::JsObjectExtern; +use crate::JsResult; + +use super::{async_js_function::AsyncJsFunction, transaction::JsTransaction}; +use futures::Future; +use js_sys::{Function as JsFunction, JsString}; use metrics::increment_gauge; use std::sync::atomic::{AtomicBool, Ordering}; -use wasm_bindgen::{prelude::wasm_bindgen, JsValue}; - -type JsResult = core::result::Result; +use tsify::Tsify; +use wasm_bindgen::prelude::wasm_bindgen; /// Proxy is a struct wrapping a javascript object that exhibits basic primitives for /// querying and executing SQL (i.e. a client connector). The Proxy uses Wasm's JsFunction to