Volt.HMR (Volt v0.19.3)

Copy Markdown View Source

Public helpers for broadcasting Volt HMR messages.

These functions are intended for packages that compose Volt's dev server but own additional source graphs, such as static-site generators. They expose the same websocket protocol used internally by Volt.Watcher without requiring callers to reach into Volt's registry implementation.

Summary

Functions

Broadcast an HMR message to all connected clients.

Clear the errors reported for a source path, hiding the overlay when none remain.

Report the errors for a source path and show them in connected browsers.

Broadcast a full page reload request for a changed path.

Invalidate Volt's dev compilation state for a source file without broadcasting.

Broadcast a style-only update for a changed stylesheet path.

Broadcast an update for a changed path.

Functions

broadcast(type, payload \\ nil, opts \\ [])

Broadcast an HMR message to all connected clients.

clear_error(path, opts \\ [])

@spec clear_error(
  String.t(),
  keyword()
) :: :ok

Clear the errors reported for a source path, hiding the overlay when none remain.

error(path, reason, opts \\ [])

@spec error(String.t(), term(), keyword()) :: :ok

Report the errors for a source path and show them in connected browsers.

reason may be OXC.Diagnostic maps, messages, exceptions, or any other term; see Volt.Dev.Error.entries/2. The errors stay current until clear_error/2, so browsers that connect later show them too.

Options

  • :session — the development session. Default: :default
  • :title — the overlay heading for these errors, such as "Render error". Default: "Build error"

full_reload(path, opts \\ [])

Broadcast a full page reload request for a changed path.

invalidate_file(path, opts \\ [])

Invalidate Volt's dev compilation state for a source file without broadcasting.

style_update(path, opts \\ [])

Broadcast a style-only update for a changed stylesheet path.

update(path, changes, opts \\ [])

@spec update(String.t(), [atom() | String.t()], keyword()) :: :ok

Broadcast an update for a changed path.