Module: lib/core/trace/devtools

The browser side of avenx serve --trace.

Recording is off unless a developer asks for it. The dev server injects one call to installTraceRecorder when --trace is passed, and nothing in this module runs otherwise — no listeners, no timers, no globals.

What it adds is the smallest thing that closes the loop: start recording, let the developer reproduce the bug, then send the trace to the dev server so avenx trace list can see it. Everything after that happens in the terminal, where the rest of Avenx's tooling already lives.

Source:

Members

(static, constant) TRACE_ENDPOINT :string

Where a recording is posted when the developer saves it.

Type:
  • string
Source:

(inner) controller :object|null

The control surface published on window.avenxTrace while recording.

Type:
  • object | null
Source:

Methods

(static) installTraceRecorder(optionsopt) → {object}

Starts recording in a browser and publishes a small control surface.

The recorder is armed after the current task rather than immediately, so the application's initial mount is treated as setup rather than as a session of unexplained state writes.

Parameters:
Name Type Attributes Description
options object <optional>

Recorder options.

Properties
Name Type Attributes Description
endpoint string <optional>

Where save() posts the trace.

redact Array:.<string:> <optional>

Property paths to withhold.

maxNodes number <optional>

Ring-buffer capacity.

autoSave boolean <optional>

Save automatically on page hide.

Source:
Returns:

The control surface, also published as window.avenxTrace.

Type
object

(static) isRecording() → {boolean}

Whether a browser recording is currently running.

Source:
Returns:
Type
boolean

(static) uninstallTraceRecorder() → {object|null}

Stops any recording this module started.

Source:
Returns:

The finished trace.

Type
object | null