Musubi.Page.Frame (musubi v0.13.0)

Copy Markdown View Source

Per-socket outbound bundle threaded through the :after_render and :after_serialize transform stages (Musubi.Lifecycle).

A frame groups one store socket's render output with the push events (Musubi.Event) it queued this cycle. :after_render sees the Elixir-form frame (render native, events empty — events are drained at the server aggregation phase); :after_serialize sees the wire-form frame (render serialized, events wire-encoded) and is where render / event validation runs. A hook returns {:cont | :halt, frame, socket} and may rewrite render or events.

Summary

Types

t()

@type t() :: %Musubi.Page.Frame{
  events: [Musubi.Event.event()],
  render:
    Musubi.Page.StoreTable.Entry.resolved_state()
    | Musubi.Page.StoreTable.Entry.wire_state()
    | nil
}