Extract HTML5 SSE helpers
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Iterator
|
||||
|
||||
|
||||
def html5_sse_event(event: str, fragment: str) -> str:
|
||||
data = "\n".join(f"data: {line}" for line in fragment.splitlines())
|
||||
return f"event: {event}\nretry: 5000\n{data}\n\n"
|
||||
|
||||
|
||||
def html5_sse_if_changed(last_fragments: dict[str, str], event: str, fragment: str) -> Iterator[str]:
|
||||
if last_fragments.get(event) == fragment:
|
||||
return
|
||||
last_fragments[event] = fragment
|
||||
yield html5_sse_event(event, fragment)
|
||||
|
||||
|
||||
def html5_sse_comment(message: str) -> str:
|
||||
return f": {message}\n\n"
|
||||
@@ -42,6 +42,10 @@ from api_server.html5_responses import (
|
||||
html5_response as _html5_response,
|
||||
html5_sse_response as _html5_sse_response,
|
||||
)
|
||||
from api_server.html5_sse import (
|
||||
html5_sse_comment as _html5_sse_comment,
|
||||
html5_sse_if_changed as _html5_sse_if_changed,
|
||||
)
|
||||
from api_server.html5_inspector import (
|
||||
render_html5_flowchart,
|
||||
render_html5_object_context,
|
||||
@@ -8425,22 +8429,6 @@ def _operation_value(value: object) -> str:
|
||||
return str(getattr(value, "value", value))
|
||||
|
||||
|
||||
def _html5_sse_event(event: str, fragment: str) -> str:
|
||||
data = "\n".join(f"data: {line}" for line in fragment.splitlines())
|
||||
return f"event: {event}\nretry: 5000\n{data}\n\n"
|
||||
|
||||
|
||||
def _html5_sse_if_changed(last_fragments: dict[str, str], event: str, fragment: str):
|
||||
if last_fragments.get(event) == fragment:
|
||||
return
|
||||
last_fragments[event] = fragment
|
||||
yield _html5_sse_event(event, fragment)
|
||||
|
||||
|
||||
def _html5_sse_comment(message: str) -> str:
|
||||
return f": {message}\n\n"
|
||||
|
||||
|
||||
def _project_summaries() -> list[ProjectSummaryResponse]:
|
||||
project_ids = set(_project_setup.keys())
|
||||
stored_snapshots = _storage.list_snapshot_refs()
|
||||
|
||||
Reference in New Issue
Block a user