Files
uce/site/examples/uce-starter/lib/datastar.uce
T
2026-07-30 19:41:52 +00:00

39 lines
1012 B
Plaintext

String datastar_data_lines(String field, String value)
{
String out = "";
for(String line : split(value, "\n"))
out += "data: " + field + " " + line + "\n";
return(out);
}
void datastar_sse_headers(Request& context)
{
context.call["app"]["page_type"] = "blank";
context.header["Content-Type"] = "text/event-stream; charset=utf-8";
context.header["Cache-Control"] = "no-cache, no-store, must-revalidate";
context.header["X-Accel-Buffering"] = "no";
}
String datastar_event(String event_name, StringMap fields)
{
String out = "event: " + event_name + "\n";
for(const auto& field : fields)
out += datastar_data_lines(field.first, field.second);
out += "\n";
return(out);
}
String datastar_patch_elements(String html)
{
StringMap fields;
fields["elements"] = html;
return(datastar_event("datastar-patch-elements", fields));
}
String datastar_patch_signals(String signals_json)
{
StringMap fields;
fields["signals"] = signals_json;
return(datastar_event("datastar-patch-signals", fields));
}