lustre/cmd
Types
Functions
pub fn from(cmd: fn(fn(a) -> Nil) -> Nil) -> Cmd(a)
Create a Cmd
from some custom side effect. This is mostly useful for
package authors, or for integrating other libraries into your Lustre app.
We pass in a function that recieves a dispatch
callback that can be used
to send messages to the Lustre runtime. We could, for example, create a tick
command that uses the setTimeout
JavaScript API to send a message to the
runtime every second:
import lustre/cmd.{Cmd}
external fn set_interval(callback: fn() -> any, interval: Int) =
"" "window.setInterval"
pub fn every_second(msg: msg) -> Cmd(msg) {
use dispatch <- cmd.from
set_interval(fn() { dispatch(msg) }, 1000)
}
pub fn none() -> Cmd(a)
Typically our app’s update
function needs to return a tuple of
#(model, Cmd(action))
. When we don’t need to perform any side effects we
can just return none()
!