Bonsai_web.StartStart handles the entire lifecycle of web-based Bonsai application.
Put another way, Start is like Core.Command for Bonsai_web apps.
module Handle : sig ... endmodule App_input : sig ... endThe input of an application-level component is a value of type ('input, 'outgoing) App_input.t.
module App_result : sig ... endThe result of an application-level component is a value of type 'incoming App_result.t. This value contains the view of the app, and also an inject function: a way for the holder of the Handle.t to send events into the application component.
val start_standalone :
initial_input:'input ->
bind_to_element_with_id:string ->
('input, Virtual_dom.Vdom.Node.t) Bonsai_web__.Import.Bonsai.t ->
('input, unit, Core_kernel.Nothing.t, Core_kernel.Nothing.t) Handle.tStart an application, receiving a handle that can't schedule any actions.
The outermost Bonsai.t's result type parameter should be a Vdom.Node.t, which will be bound to the DOM element with id bind_to_element_with_id.
val start :
initial_input:'input ->
bind_to_element_with_id:string ->
(('input, 'outgoing) App_input.t, ('extra, 'incoming) App_result.t)
Bonsai_web__.Import.Bonsai.t ->
('input, 'extra, 'incoming, 'outgoing) Handle.tStart an application, receiving a handle that can schedule actions of a user-defined type.
The outermost Bonsai.t's result type parameter should be a pair consisting of:
Vdom.Node.t, which will be bound to the DOM element with id bind_to_element_with_id; andinject function that accepts external actions and returns Vdom.Event.ts.