aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2024-07-13 22:30:42 +0800
committerkaiwu <kaiwu2004@gmail.com>2024-07-13 22:30:42 +0800
commit47e447445b066a246fb07a9a54970b6c8b5fd03c (patch)
tree6454e3c9a8a5e819cc428fec8a94e36e5bba0a38
parent94c0536386d0da7e071c8d33a298c308f532c4fb (diff)
downloadwechat-47e447445b066a246fb07a9a54970b6c8b5fd03c.tar.gz
wechat-47e447445b066a246fb07a9a54970b6c8b5fd03c.zip
wechat errors
-rw-r--r--src/wechat/object.gleam18
-rw-r--r--src/wechat/page.gleam6
2 files changed, 16 insertions, 8 deletions
diff --git a/src/wechat/object.gleam b/src/wechat/object.gleam
index 8bded74..000041e 100644
--- a/src/wechat/object.gleam
+++ b/src/wechat/object.gleam
@@ -49,7 +49,15 @@ pub fn int(o: Dynamic) -> Result(Int, WechatError) {
case dynamic.int(o) {
Ok(i) -> Ok(i)
Error([f, ..t]) -> Error(WechatDecodeError([f, ..t]))
- Error([]) -> Error(WechatError(""))
+ Error([]) -> Error(WechatError("decode int error"))
+ }
+}
+
+pub fn float(o: Dynamic) -> Result(Float, WechatError) {
+ case dynamic.float(o) {
+ Ok(i) -> Ok(i)
+ Error([f, ..t]) -> Error(WechatDecodeError([f, ..t]))
+ Error([]) -> Error(WechatError("decode float error"))
}
}
@@ -57,7 +65,7 @@ pub fn bool(o: Dynamic) -> Result(Bool, WechatError) {
case dynamic.bool(o) {
Ok(i) -> Ok(i)
Error([f, ..t]) -> Error(WechatDecodeError([f, ..t]))
- Error([]) -> Error(WechatError(""))
+ Error([]) -> Error(WechatError("decode bool error"))
}
}
@@ -65,7 +73,7 @@ pub fn string(o: Dynamic) -> Result(String, WechatError) {
case dynamic.string(o) {
Ok(i) -> Ok(i)
Error([f, ..t]) -> Error(WechatDecodeError([f, ..t]))
- Error([]) -> Error(WechatError(""))
+ Error([]) -> Error(WechatError("decode string error"))
}
}
@@ -73,7 +81,7 @@ pub fn field(o: Dynamic, name a: name, of b: Decoder(t)) -> Result(t, WechatErro
case dynamic.field(a, b)(o) {
Ok(x) -> Ok(x)
Error([f, ..t]) -> Error(WechatDecodeError([f, ..t]))
- Error([]) -> Error(WechatError(""))
+ Error([]) -> Error(WechatError("decode field error"))
}
}
@@ -81,6 +89,6 @@ pub fn list(o: Dynamic, of f: fn(Dynamic) -> Result(t, DecodeErrors)) -> Result(
case dynamic.list(f)(o) {
Ok(x) -> Ok(x)
Error([f, ..t]) -> Error(WechatDecodeError([f, ..t]))
- Error([]) -> Error(WechatError(""))
+ Error([]) -> Error(WechatError("decode list error"))
}
}
diff --git a/src/wechat/page.gleam b/src/wechat/page.gleam
index 5a07af4..ceb1319 100644
--- a/src/wechat/page.gleam
+++ b/src/wechat/page.gleam
@@ -1,7 +1,7 @@
import gleam/javascript/array.{type Array}
import gleam/javascript/promise.{type Promise}
import gleam/result
-import wechat/object.{type JsObject, type WechatError}
+import wechat/object.{type JsObject, type WechatResult}
pub type Page
@@ -15,7 +15,7 @@ pub fn current_page() -> JsObject {
|> result.unwrap(object.new())
}
-pub fn get_data(index: Int) -> Result(JsObject, WechatError) {
+pub fn get_data(index: Int) -> WechatResult {
let ps = get_current_pages()
case array.get(ps, array.size(ps) - index - 1) {
Ok(p) -> object.path(p, "data")
@@ -24,4 +24,4 @@ pub fn get_data(index: Int) -> Result(JsObject, WechatError) {
}
@external(javascript, "../wechat_ffi.mjs", "set_data")
-pub fn set_data(page p: JsObject, data d: JsObject, callback f: fn() -> Nil) -> Promise(Nil)
+pub fn set_data(page p: JsObject, data d: JsObject, callback f: fn() -> Nil) -> Promise(WechatResult)