aboutsummaryrefslogtreecommitdiff
path: root/src/lustre.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'src/lustre.gleam')
-rw-r--r--src/lustre.gleam19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/lustre.gleam b/src/lustre.gleam
index 2058da6..0f119b1 100644
--- a/src/lustre.gleam
+++ b/src/lustre.gleam
@@ -2,17 +2,19 @@
// IMPORTS ---------------------------------------------------------------------
+
import lustre/element
import lustre/attribute
// TYPES -----------------------------------------------------------------------
+
///
pub opaque type Program(state, action) {
Program(
init: state,
update: Update(state, action),
- view: View(state, action)
+ render: View(state, action)
)
}
@@ -25,22 +27,19 @@ pub type Attribute(action) = attribute.Attribute(action)
///
type Update(state, action) = fn (state, action) -> state
-type View(state, action) = fn (state) -> Element(action)
+type Render(state, action) = fn (state) -> Element(action)
// CONSTRUCTORS ----------------------------------------------------------------
+
///
-pub fn create (init: state, update: Update(state, action), view: View(state, action)) -> Program(state, action) {
- Program(init, update, view)
+pub fn program (init: state, update: Update(state, action), render: Render(state, action)) -> Program(state, action) {
+ Program(init, update, render)
}
+// EFFECTS ---------------------------------------------------------------------
+
///
pub external fn start (program: Program(state, action), selector: String) -> Nil
= "./lustre/ffi.mjs" "mount"
-
-
-// CONVERSIONS -----------------------------------------------------------------
-///
-pub external fn to_element (program: Program(state, action)) -> Element(a)
- = "./lustre/ffi.mjs" "Program"