Methods
(static) emitRow(libId, res) → {void}
Transforms one response and emits its row.
res is invalid when the request never got an answer: the pool was down, or the run budget expired. An HTTP error (res.ok = false), and a 200 whose body holds no list, are folded into the same "failed" status on purpose: apiPipeline distinguishes the first two, but none is authoritative about what the library HOLDS, which is the only question this row's contents answer. Only an "ok" carries a list the UI may act on, including an empty one (which legitimately removes the row); the rule itself is latestRows.itemsFromResponse. HomeRows leaves any existing row alone on "failed": a populated one keeps its content, an unpopulated one keeps its loading placeholder.
| Name | Type | Description |
|---|---|---|
libId | string | |
res | dynamic |
- Type:
- void
(static) init() → {void}
- Type:
- void
(static) loadLatestRows() → {void}
One thread services every latest-media row, at any library count. apiPipeline keeps the API pool busy (several requests in flight, one per free slot) while this task stays a single thread; the per-library task fan-out it replaced was a &h29 "too many threads" source on large servers (epic #728). See source/api/apiPipeline.bs.
Results ride out as appended children rather than a shared field: rapid writes to one field can coalesce and silently drop a row.
- Type:
- void