A full-stack framework for Ocaml (pre-alpha)
(* common.ml *)
type message_obj = {
text: string
}
(* backend.ml *)
let message: message_obj = { text="hello" }
Dream.get "/fetch_message" (fun req ->
yojson_of_message_obj message
|> Yojson.Safe.to_string
|> Dream.json
)
(* frontend.ml *)
type model = {
message: message_obj
}
let view model =
div [] [
h1 [] [text "Message from Backend"]
p [] [text (model.message.text)]
]
let message: message_object = { text="hello"; id=1 }
(* Error: This record expression is expected to have type message_object
There is no field id within type message_object *)
$ dune build lib/webapp/webapp.js # generate js
$ dune build # create a webserver executable