wasm work
This commit is contained in:
		@@ -59,6 +59,12 @@ fn take_veilid_api() -> Result<veilid_core::VeilidAPI, veilid_core::VeilidAPIErr
 | 
			
		||||
pub fn to_json<T: Serialize + Debug>(val: T) -> JsValue {
 | 
			
		||||
    JsValue::from_str(&serialize_json(val))
 | 
			
		||||
}
 | 
			
		||||
pub fn to_opt_json<T: Serialize + Debug>(val: Option<T>) -> JsValue {
 | 
			
		||||
    match val {
 | 
			
		||||
        Some(v) => JsValue::from_str(&serialize_json(v)),
 | 
			
		||||
        None => JsValue::UNDEFINED,
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn to_jsvalue<T>(val: T) -> JsValue
 | 
			
		||||
where
 | 
			
		||||
@@ -113,6 +119,14 @@ where
 | 
			
		||||
    future_to_promise(future.map(|res| res.map(|v| to_json(v)).map_err(|e| to_json(e))))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn wrap_api_future_opt_json<F, T>(future: F) -> Promise
 | 
			
		||||
where
 | 
			
		||||
    F: Future<Output = APIResult<Option<T>>> + 'static,
 | 
			
		||||
    T: Serialize + Debug + 'static,
 | 
			
		||||
{
 | 
			
		||||
    future_to_promise(future.map(|res| res.map(|v| to_opt_json(v)).map_err(|e| to_json(e))))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn wrap_api_future_plain<F, T>(future: F) -> Promise
 | 
			
		||||
where
 | 
			
		||||
    F: Future<Output = APIResult<T>> + 'static,
 | 
			
		||||
@@ -489,7 +503,7 @@ pub fn routing_context_get_dht_value(
 | 
			
		||||
    force_refresh: bool,
 | 
			
		||||
) -> Promise {
 | 
			
		||||
    let key: veilid_core::TypedKey = veilid_core::deserialize_json(&key).unwrap();
 | 
			
		||||
    wrap_api_future_json(async move {
 | 
			
		||||
    wrap_api_future_opt_json(async move {
 | 
			
		||||
        let routing_context = {
 | 
			
		||||
            let rc = (*ROUTING_CONTEXTS).borrow();
 | 
			
		||||
            let Some(routing_context) = rc.get(&id) else {
 | 
			
		||||
@@ -511,7 +525,7 @@ pub fn routing_context_set_dht_value(id: u32, key: String, subkey: u32, data: St
 | 
			
		||||
        .decode(&data.as_bytes())
 | 
			
		||||
        .unwrap();
 | 
			
		||||
 | 
			
		||||
    wrap_api_future_json(async move {
 | 
			
		||||
    wrap_api_future_opt_json(async move {
 | 
			
		||||
        let routing_context = {
 | 
			
		||||
            let rc = (*ROUTING_CONTEXTS).borrow();
 | 
			
		||||
            let Some(routing_context) = rc.get(&id) else {
 | 
			
		||||
@@ -1181,14 +1195,14 @@ pub fn crypto_verify(kind: u32, key: String, data: String, signature: String) ->
 | 
			
		||||
        .unwrap();
 | 
			
		||||
    let signature: veilid_core::Signature = veilid_core::deserialize_json(&signature).unwrap();
 | 
			
		||||
 | 
			
		||||
    wrap_api_future_json(async move {
 | 
			
		||||
    wrap_api_future_void(async move {
 | 
			
		||||
        let veilid_api = get_veilid_api()?;
 | 
			
		||||
        let crypto = veilid_api.crypto()?;
 | 
			
		||||
        let csv = crypto.get(kind).ok_or_else(|| {
 | 
			
		||||
            veilid_core::VeilidAPIError::invalid_argument("crypto_verify", "kind", kind.to_string())
 | 
			
		||||
        })?;
 | 
			
		||||
        let out = csv.verify(&key, &data, &signature)?;
 | 
			
		||||
        APIResult::Ok(out)
 | 
			
		||||
        csv.verify(&key, &data, &signature)?;
 | 
			
		||||
        APIRESULT_UNDEFINED
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user