diff options
author | kaiwu <kaiwu2004@gmail.com> | 2024-07-13 22:30:42 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2024-07-13 22:30:42 +0800 |
commit | 47e447445b066a246fb07a9a54970b6c8b5fd03c (patch) | |
tree | 6454e3c9a8a5e819cc428fec8a94e36e5bba0a38 | |
parent | 94c0536386d0da7e071c8d33a298c308f532c4fb (diff) | |
download | wechat-47e447445b066a246fb07a9a54970b6c8b5fd03c.tar.gz wechat-47e447445b066a246fb07a9a54970b6c8b5fd03c.zip |
wechat errors
-rw-r--r-- | src/wechat/object.gleam | 18 | ||||
-rw-r--r-- | src/wechat/page.gleam | 6 |
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) |