Skip to content

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 beforeunload listener that interrupts the main fiber when the page is unloading.

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 page receives a beforeunload event.

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.

Gotchas

The beforeunload 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;
};