Current section
Files
Jump to
Current section
Files
src/lily.gleam
//// Lily: a component framework for Gleam with server-client state synchronisation.
// Re-export store
pub type Store(model, msg) =
store.Store(model, msg)
import lily/store
pub const new_store = store.new
pub const apply = store.apply
pub const dispatch = store.dispatch
pub const get_model = store.get_model
pub const send = store.send
pub const subscribe = store.subscribe
pub const unsubscribe = store.unsubscribe
// Re-export component
pub type Patch =
component.Patch
import lily/component
pub const mount = component.mount
pub const live = component.live
pub const simple = component.simple
// Re-export protocol
pub type Protocol(model, msg) =
protocol.Protocol(model, msg)
pub type Serialiser(model, msg) =
protocol.Serialiser(model, msg)
import lily/protocol
pub const encode = protocol.encode
pub const decode = protocol.decode
// Client-side exports
@target(javascript)
import lily/client
@target(javascript)
pub const connect = client.connect
@target(javascript)
pub const start = client.start
// Server-side exports
@target(erlang)
import lily/server
@target(erlang)
pub const server_start = server.start
@target(erlang)
pub const server_connect = server.connect
@target(erlang)
pub const disconnect = server.disconnect
@target(erlang)
pub const incoming = server.incoming