Return a value that properly handle files
This commit is contained in:
parent
f4122a6e63
commit
70665fa762
14
src/api.rs
14
src/api.rs
@ -51,7 +51,7 @@ use sdk_common::sp_client::silentpayments::{
|
||||
SilentPaymentAddress,
|
||||
Error as SpError,
|
||||
};
|
||||
use sdk_common::{signature, MutexExt, MAX_PRD_PAYLOAD_SIZE};
|
||||
use sdk_common::{js_sys::{Object, Reflect, Uint8Array}, signature, MutexExt, MAX_PRD_PAYLOAD_SIZE};
|
||||
use serde_json::{json, Error as SerdeJsonError, Map, Value};
|
||||
|
||||
use serde::{de, Deserialize, Serialize};
|
||||
@ -1717,8 +1717,16 @@ pub fn encode_value(value: JsValue) -> ApiResult<Vec<u8>> {
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn decode_value(value: Vec<u8>) -> ApiResult<JsValue> {
|
||||
let res: Value = sdk_common::serialization::ciborium_deserialize(&value)?;
|
||||
Ok(serde_wasm_bindgen::to_value(&res)?)
|
||||
if let Ok(deserialized) = sdk_common::serialization::ciborium_deserialize::<FileBlob>(&value) {
|
||||
let u8IntArray = Uint8Array::from(deserialized.data.as_slice());
|
||||
let res = Object::new();
|
||||
Reflect::set(&res, &JsValue::from_str("type"), &JsValue::from_str(&deserialized.r#type));
|
||||
Reflect::set(&res, &JsValue::from_str("data"), &JsValue::from(u8IntArray));
|
||||
Ok(JsValue::from(res))
|
||||
} else {
|
||||
let res: Value = sdk_common::serialization::ciborium_deserialize(&value)?;
|
||||
return Ok(serde_wasm_bindgen::to_value(&res)?);
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
|
Loading…
x
Reference in New Issue
Block a user