datastar
Types
SSE Events that can be send to the client
pub type Event {
EventMergeFragment(MergeFragmentEventConfig)
EventRemoveFragments(RemoveFragmentsConfig)
EventMergeSignals(MergeSignalsConfig)
EventRemoveSignals(RemoveSignalsConfig)
EventExecuteScript(ExecuteScriptConfig)
}
Constructors
-
EventMergeFragment(MergeFragmentEventConfig)
-
EventRemoveFragments(RemoveFragmentsConfig)
-
EventMergeSignals(MergeSignalsConfig)
-
EventRemoveSignals(RemoveSignalsConfig)
-
EventExecuteScript(ExecuteScriptConfig)
pub opaque type EventOption(phantom)
pub opaque type ExecuteScriptConfig
pub opaque type ExecuteScriptOptionType
pub opaque type MergeFragmentEventConfig
pub opaque type MergeFragmentOptionType
The merge mode used by merge fragments
pub type MergeMode {
Morph
Inner
Outer
Prepend
Append
Before
After
UpsertAttributes
}
Constructors
-
Morph
-
Inner
-
Outer
-
Prepend
-
Append
-
Before
-
After
-
UpsertAttributes
pub opaque type MergeSignalsConfig
pub opaque type MergeSignalsOptionType
pub opaque type RemoveFragmentOptionType
pub opaque type RemoveFragmentsConfig
pub opaque type RemoveSignalsConfig
pub opaque type RemoveSignalsOptionType
Functions
pub fn data_attributes(
value: List(#(String, String)),
) -> EventOption(ExecuteScriptOptionType)
This option is only used by event_execute_script
data_attributes([#("type", "text/javascript")]),
Generates:
data: attributes type text/javascript
pub fn data_auto_remove(
value: Bool,
) -> EventOption(ExecuteScriptOptionType)
This option is only used by event_execute_script
data_auto_remove(False),
Generates:
data: autoRemove false
pub fn data_merge_mode(
mode: MergeMode,
) -> EventOption(MergeFragmentOptionType)
This option is only used by event_merge_fragments
data_merge_mode(MergeMode.Inner),
Generates:
data: mergeMode inner
pub fn data_only_if_missing(
value: Bool,
) -> EventOption(MergeSignalsOptionType)
Option only used by event_merge_signals
pub fn data_selector(
value: String,
) -> EventOption(MergeFragmentOptionType)
Option only used by event_merge_fragments
data_selector("#feed"),
Generates:
data: selector #feed
pub fn data_settle_duration(value: Int) -> EventOption(a)
Option used by event_merge_fragments and event_remove_fragments
pub fn data_view_transition(value: Bool) -> EventOption(a)
This option is used by event_merge_fragments and event_remove_fragments
pub fn event_execute_script(
script: String,
options: List(EventOption(ExecuteScriptOptionType)),
) -> Event
Generate a datastar-execute-script
event
event_execute_script("window.location = \"https://data-star.dev\"", [ event_id("123") ])
|> event_to_string
Generates
event: datastar-execute-script
id: 123
data: script window.location = \"https://data-star.dev\"
pub fn event_id(value: String) -> EventOption(a)
Optional for all SSE events
dt.event_id("123"),
Generates:
id: 123
pub fn event_merge_fragments(
fragments fragments: String,
options options: List(EventOption(MergeFragmentOptionType)),
) -> Event
Event to send new fragments to the client
event_merge_fragments("<span>1</span>", [data_selector("#feed")]),
Generates:
event: datastar-merge-fragments
data: selector #feed
data: fragments <span>1</span>
pub fn event_merge_signals(
signals: String,
options: List(EventOption(MergeSignalsOptionType)),
) -> Event
Generate a datastar-merge-signals
event
event_merge_signals("{\"output\":\"Output Test\"}", []),
Generates:
event: datastar-merge-signals
data: signals {\"output\":\"Output Test\"}
pub fn event_remove_fragments(
selector: String,
options: List(EventOption(RemoveFragmentOptionType)),
) -> Event
Event to remove fragments on the client
event_remove_fragments("#feed", []),
Generates:
event: datastar-remove-fragments
data: selector #feed
pub fn event_remove_signals(
signals: List(String),
options: List(EventOption(RemoveSignalsOptionType)),
) -> Event
Generate a datastar-remove-signals
event
event_remove_signals(["user.name", "user.email"], [])
Generates:
event: datastar-remove-signals
data: paths user.name
data: paths user.email
pub fn event_to_string(event: Event) -> String
Takes an Event and generates a string to send back to the client
remove_fragments("#target", [])
|> event_to_string
Generates
event: datastar-remove-fragments
data: selector #target
pub fn events_to_string(events events: List(Event)) -> String
Takes a list of Events and generates the string to send to the client