Add Prettier and ESLint tooling (Refs #77)

This commit is contained in:
2026-10-09 15:56:13 -04:00
parent 8ed059b8d3
commit 16469e2d43
711 changed files with 99737 additions and 28286 deletions
+21 -8
View File
@@ -1,27 +1,40 @@
/** Coalesce pushes, serialize refreshes, and recover missed events after reconnect or tab activation. */
export function betaUpdates(load: () => Promise<unknown>, betaId?: () => number): () => void {
let timer: ReturnType<typeof setTimeout> | undefined;
let stopped = false, running = false, pending = false;
let stopped = false,
running = false,
pending = false;
const schedule = () => {
pending = true;
if (stopped || running || timer || document.hidden) return;
timer = setTimeout(async () => {
timer = undefined;
if (stopped || document.hidden) return;
running = true; pending = false;
try { await load(); }
catch { /* The page owns its error state; later events can retry. */ }
finally { running = false; if (pending) schedule(); }
running = true;
pending = false;
try {
await load();
} catch {
/* The page owns its error state; later events can retry. */
} finally {
running = false;
if (pending) schedule();
}
}, 200);
};
const changed = (event: Event) => { if (!betaId || (event as CustomEvent).detail?.betaId === betaId()) schedule(); };
const visible = () => { if (!document.hidden) schedule(); };
const changed = (event: Event) => {
if (!betaId || (event as CustomEvent).detail?.betaId === betaId()) schedule();
};
const visible = () => {
if (!document.hidden) schedule();
};
window.addEventListener('ec:beta-changed', changed);
window.addEventListener('ec:pipeline-connected', schedule);
window.addEventListener('ec:fleet-changed', schedule);
document.addEventListener('visibilitychange', visible);
return () => {
stopped = true; clearTimeout(timer);
stopped = true;
clearTimeout(timer);
window.removeEventListener('ec:beta-changed', changed);
window.removeEventListener('ec:pipeline-connected', schedule);
window.removeEventListener('ec:fleet-changed', schedule);