@kayahr/signal

    Class BaseSignal<T>Abstract

    Abstract base class for signal implementations managing the callability of the signal object and internal management of the signal value including the observability of it through in internally created shared observable.

    Type Parameters

    • T = unknown

    Hierarchy (View Summary, Expand)

    Implements

    Index

    Constructors

    • Creates a new signal with the given initial value and options.

      Type Parameters

      • T = unknown

      Parameters

      • initialValue: T

        The initial signal value.

      • options: BaseSignalOptions<T> = {}

        The base signal options.

      Returns BaseSignal<T>

    Methods

    • Returns InteropSubscribable<T>

    • Returns the current signal value version. This version is incremented every time the signal value has really changed. The version starts by 0 and wraps to Number.MIN_SAFE_INTEGER when Number.MAX_SAFE_INTEGER is reached, allowing unique versions for eighteen quadrillion signal updates.

      Returns number

      The current signal version.

    • Checks if signal value is still valid. When signal has no dependencies then this method can always return true. If signal has dependencies then it must check if any dependency has changed or became invalid. If yes, then this method must return false and the signal will be re-validated by calling (). If all dependency are valid/unchanged then this method must return true to indicate that the signal value is still valid.

      Returns boolean

      True if signal value is valid, false if it must be re-validated.

    • Sets the value. Does nothing when new value equals the old one. If new value is different, then the signal version is increased and observers are informed.

      Parameters

      • value: T

        The value to set.

      Returns this

    • Subscribes the given observer to this object.

      Parameters

      • observer: Observer<T> | ((next: T) => void)

        The observer to subscribe.

      Returns Subscription

      Object which can be used to unsubscribe the observer.

    • Called when last observer unsubscribes.

      Returns void

    • Called when () returned false and the current value of this signal is needed. Must compute/fetch and cache the new value so the next call to () returns a valid value. When signal has no dependencies and () is implemented to always return true then this method can stay empty as it has nothing to validate/update.

      Returns void

    • Called when first observer subscribes.

      Returns void

    MMNEPVFCICPMFPCPTTAAATR