blob: 30194ede6e2e3681dcdf1d6a89d866a4143d4a6e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import gleam/list
import gleam/result
import wechat/app as weapp
import wechat/component.{run_component}
import wechat/object.{type JsObject}
import wechat/page.{run_page}
import app/app
import app/components/basic/basic
import app/pages/index/index
pub type Constructor =
fn() -> JsObject
pub fn app() -> Result(Nil, Nil) {
app.app() |> weapp.run_app |> Ok
}
pub fn pages() -> List(#(String, Constructor)) {
[#("index", index.page)]
}
pub fn components() -> List(#(String, Constructor)) {
[#("basic", basic.component)]
}
pub fn page(ps: List(#(String, Constructor)), p: String) -> Result(Nil, Nil) {
ps
|> list.find(fn(px) { px.0 == p })
|> result.try(fn(px) { px.1() |> run_page |> Ok })
}
pub fn component(
ps: List(#(String, Constructor)),
p: String,
) -> Result(Nil, Nil) {
ps
|> list.find(fn(px) { px.0 == p })
|> result.try(fn(px) { px.1() |> run_component |> Ok })
}
|