Unified Browser Lifecycle
One typed session for visibility, focus, connectivity, idle, page lifecycle, and cross-tab — instead of scattered listeners.
@jayoncode/browser-lifecycle
Observe browser state. Derive session intelligence. React with confidence.
One session, one snapshot, one event stream — visibility, focus, connectivity, idle, page lifecycle, and cross-tab, with optional session intelligence and DX.
import { createBrowserLifecycle } from "@jayoncode/browser-lifecycle";
const lifecycle = createBrowserLifecycle({
autoStart: true,
idleTimeout: 60_000,
});
lifecycle.on("page:hidden", () => {
pausePolling();
pauseMedia();
});
lifecycle.on("page:visible", () => {
resumePolling();
});
lifecycle.on("session:idle", () => {
lockSensitiveScreen();
});
lifecycle.on("connection:reconnect", () => {
flushOfflineQueue();
});One typed session for visibility, focus, connectivity, idle, page lifecycle, and cross-tab — instead of scattered listeners.
Opt-in activity and page-local presence — current derived state for this browser session.
Chronological history plus metrics and reports. Nothing allocates until you call the factories.
Wait, Conditions, Resilience, plugins, and a playground — react with confidence.