Class: DevToolsBridge

devtools.DevToolsBridge

DevTools bridge implementation managing lifecycle telemetry, ring-buffered events, and sandboxed inspection for Chrome DevTools MCP and browser environments.

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new DevToolsBridge(options?)

Parameters

Name Type
options? DevToolsOptions

Properties

eventBuffer

Private eventBuffer: DevToolsEvent[] = []


metrics

Private metrics: DevToolsPerformanceMetrics


options

Private options: Required<DevToolsOptions>


registeredTargets

Private registeredTargets: Map<string, object>


targetIdCounter

Private targetIdCounter: number = 0


targetNames

Private targetNames: WeakMap<object, string>


unregisterHooks

Private unregisterHooks: null | () => void = null

Methods

clearEventBuffer

clearEventBuffer(): void

Clears all buffered events from the DevTools ring buffer.

Returns

void


connect

connect(options?): () => void

Connects the DevTools bridge to @banksia/signals observability lifecycle hooks.

Parameters

Name Type Description
options? DevToolsOptions Optional override configuration options.

Returns

fn

An unsubscribe function to disconnect the DevTools bridge.

(): void

Connects the DevTools bridge to @banksia/signals observability lifecycle hooks.

Returns

void

An unsubscribe function to disconnect the DevTools bridge.

Example

const devtools = new DevToolsBridge();
devtools.connect({ maxBufferSize: 1000 });

Example

const devtools = new DevToolsBridge();
devtools.connect({ maxBufferSize: 1000 });

disconnect

disconnect(): void

Disconnects the DevTools bridge and releases all registered lifecycle hooks.

Returns

void


getPerformanceMetrics

getPerformanceMetrics(): DevToolsPerformanceMetrics

Retrieves current aggregate performance and profiling metrics.

Returns

DevToolsPerformanceMetrics

The DevToolsPerformanceMetrics descriptor.


getRecentEvents

getRecentEvents(options?): DevToolsEvent[]

Retrieves recent telemetry events from the ring buffer.

Parameters

Name Type Description
options? GetRecentEventsOptions Filtering and limit options.

Returns

DevToolsEvent[]

Array of DevToolsEvent items matching query.


getRecentMutations

getRecentMutations(limit?): DevToolsMutationEvent[]

Convenience helper to retrieve recent mutation events.

Parameters

Name Type Description
limit? number Maximum number of mutation events to return.

Returns

DevToolsMutationEvent[]

Array of DevToolsMutationEvent items.


inspectGraph

inspectGraph(targetOrName?): DependencyGraphNode | Record<string, DependencyGraphNode>

Inspects the reactive dependency graph for a specific target or across all registered targets.

Parameters

Name Type Description
targetOrName? string | object Optional target object or registered name. If omitted, returns graphs for all registered targets.

Returns

DependencyGraphNode | Record<string, DependencyGraphNode>

The DependencyGraphNode for the target, or a record mapping target IDs to their graph nodes.


inspectState

inspectState(targetOrName): null | Record<string, unknown>

Safely inspects the reactive state of a target object in an untracked, sandboxed execution context.

Parameters

Name Type Description
targetOrName string | object The registered name or target object to inspect.

Returns

null | Record<string, unknown>

A key-value snapshot of target properties with private values sanitized, or null.


inspectTarget

inspectTarget(targetOrName): null | DevToolsTargetInspection

Inspects a registered target or reactive object, returning a full snapshot of state and dependency graph.

Parameters

Name Type Description
targetOrName string | object The registered target name or object instance to inspect.

Returns

null | DevToolsTargetInspection

A DevToolsTargetInspection object, or null if target is not found.

Remarks

All state reads are performed in an isolated, untracked sandbox (pushActiveSubscriber(null)), ensuring that DevTools inspections do not pollute active reactivity contexts or create phantom dependencies.


isConnected

isConnected(): boolean

Returns whether the DevTools bridge is currently active and capturing telemetry.

Returns

boolean

true if connected; otherwise false.


listRegisteredTargets

listRegisteredTargets(): { id: string ; name: string ; properties: string[] }[]

Lists all currently registered reactive target objects and stores.

Returns

{ id: string ; name: string ; properties: string[] }[]

Array of target descriptors with metadata and available property keys.


pushEvent

Private pushEvent(event): void

Parameters

Name Type
event DevToolsEvent

Returns

void


registerTarget

registerTarget(target, name?): () => void

Explicitly registers a reactive target object, domain model, or store for indexing and inspection.

Parameters

Name Type Description
target object The reactive object or store instance to register.
name? string Optional diagnostic name or ID for indexing.

Returns

fn

An unregister function to remove the target from registry.

(): void

Explicitly registers a reactive target object, domain model, or store for indexing and inspection.

Returns

void

An unregister function to remove the target from registry.

Example

const unregister = devtools.registerTarget(userStore, 'UserStore');

Example

const unregister = devtools.registerTarget(userStore, 'UserStore');

resetPerformanceMetrics

resetPerformanceMetrics(): void

Resets all accumulated performance metrics to zero.

Returns

void


sanitizeValue

Private sanitizeValue(val): unknown

Parameters

Name Type
val unknown

Returns

unknown


unregisterTarget

unregisterTarget(targetOrName): void

Unregisters a previously registered reactive target object.

Parameters

Name Type Description
targetOrName string | object The target instance or registered name to remove.

Returns

void