Skip to content
Effect Days 2026 Get your ticket

BrowserRuntime

Browser helper for running a root Effect program.

This module exports runMain, a browser version of the main Effect runner. It forwards runner options to the core runtime and adds a pagehide listener that interrupts the main fiber when the document is discarded.

1 exports Added in v4.0.0 Source

Running

runMain

Added in v4.0.0 Source

Runs an effect as the browser main program and interrupts its fiber when the document is discarded.

When to use

Use to launch a browser page, single-page application, demo, or browser test harness as a root Effect program.

Details

Supports both direct and curried call forms. Options are forwarded to makeRunMain, including disableErrorReporting and custom teardown behavior. A persisted pagehide event is ignored because the document is entering the back/forward cache and may be restored.

Gotchas

The pagehide interruption is best-effort. Browser teardown may prevent asynchronous finalizers, network work, timers, or prompts from completing.

Signature

declare const runMain: {
(options?: {
readonly disableErrorReporting?: boolean;
readonly teardown?: Teardown;
}): <E, A>(effect: Effect<A, E>) => void;
<E, A>(effect: Effect<A, E>, options?: {
readonly disableErrorReporting?: boolean;
readonly teardown?: Teardown;
}): void;
}