A behaviour for rendering Svelte components server-side.
To define a custom renderer, change the application config in config.exs:
config :live_svelte, ssr_module: MyCustomSSRModuleTelemetry
Exposes a telemetry span for each render under the key [:live_svelte, :ssr].
The following events are emitted:
[:live_svelte, :ssr, :start]— fired when a render begins. Metadata:%{component: name, props: props, slots: slots}.[:live_svelte, :ssr, :stop]— fired when a render completes successfully. Metadata: same. Measurements include%{duration: duration}in native time units (convert with:erlang.convert_time_unit(duration, :native, :millisecond)).[:live_svelte, :ssr, :exception]— fired when the renderer raises. The exception is re-raised after the event is emitted.
Summary
Types
A render response which should take the shape
Types
@type component_name() :: String.t()
@type render_response() :: %{ required(String.t()) => %{required(String.t()) => String.t() | nil} | String.t() }
A render response which should take the shape:
%{
"css" => %{
"code" => String.t | nil,
"map" => String.t | nil
},
"head" => String.t,
"html" => String.t
}
Callbacks
@callback render(component_name(), props(), slots()) :: render_response() | no_return()
Functions
@spec render(component_name(), props(), slots()) :: render_response() | no_return()