--- title: Domains --- ```js import {API, POLL} from "./components/config.js"; ``` ```js const domainsState = (async function*() { while (true) { let domains = [], repos = [], ok = false; try { const [rd, rr] = await Promise.all([ fetch(`${API}/domains/?status=all`), fetch(`${API}/repos/`), ]); ok = rd.ok && rr.ok; if (ok) { [domains, repos] = await Promise.all([rd.json(), rr.json()]); } } catch {} yield {domains, repos, ok, ts: new Date()}; await new Promise(res => setTimeout(res, POLL)); } })(); ``` ```js const domains = domainsState.domains ?? []; const repos = domainsState.repos ?? []; const _ok = domainsState.ok ?? false; const _ts = domainsState.ts; ``` # Domains ```js import {injectTocTop} from "./components/toc-sidebar.js"; import {withDocHelp} from "./components/doc-overlay.js"; import {openEntityModal} from "./components/entity-modal.js"; // ── Live indicator ───────────────────────────────────────────────────────────── const _liveEl = html`
make api`}
No domains found. API may be offline.
`); } else { display(html`${r.local_path}` : ""}
${r.remote_url ? html`${r.remote_url.replace(/^https?:\/\//, "")}` : ""}