feat(backend): wire feed renderers into API

Add FeedRenderer and FeedRendererProvider to support server-side
rendering of feed items via ?render=json-render query param.

- FeedRenderer maps sourceId to FeedItemRenderer, renders matching
  items and drops the rest
- FeedRendererProvider mirrors FeedSourceProvider pattern for
  per-user renderer construction
- UserSession exposes renderer, handler converts JrxNode to Spec
- Returns 400 for unknown render format, 500 if renderer missing

Co-authored-by: Ona <no-reply@ona.com>
This commit is contained in:
2026-03-15 17:07:33 +00:00
parent 4b824c66ce
commit 0145976a9f
13 changed files with 394 additions and 18 deletions

View File

@@ -0,0 +1,7 @@
import type { FeedItemRenderer } from "@aelis/core"
import { renderTflAlert } from "@aelis/source-tfl"
export const TFL_SOURCE_ID = "aelis.tfl"
export const tflRenderer: FeedItemRenderer = renderTflAlert as FeedItemRenderer