Centralized registry that tracks all active ServiceRefs.

Provides ref counting, introspection, and leak detection via FinalizationRegistry. Each SynapseContext owns at most one RefRegistry (created lazily on first acquireRef()).

1.2.0

Implements

Constructors

Accessors

  • get isDisposed(): boolean
  • Whether this registry has been disposed.

    Returns boolean

Methods

  • Check for potential leaks: refs that have been alive longer than maxAgeMs without being released.

    This is a heuristic — long-lived refs (e.g. for the lifetime of the app) are expected. Use this for debugging / dev mode.

    Parameters

    • maxAgeMs: number = 60_000

      Threshold in ms.

    Returns LeakReport[]

    60_000
    
  • Force-release all active refs.

    Called automatically when the owning SynapseContext is disposed. After this, all refs' .current will throw RefReleasedError.

    Returns void

  • Register a handler for GC-detected leaks.

    Called when a ServiceRef is garbage collected without .release() having been called first.

    Parameters

    Returns void

  • Total number of active (unreleased) refs across all tokens.

    Returns number