Class ComponentStore<T>

Type Parameters

  • T

Hierarchy

Constructors

Properties

destroy$: Observable<void> = ...
destroySubject$: ReplaySubject<void> = ...
isInitialized: boolean = false
notInitializedErrorMessage: string = ...
state$: Observable<T> = ...
stateSubject$: ReplaySubject<T> = ...

Methods

  • Creates an effect.

    This effect is subscribed to throughout the lifecycle of the ComponentStore.

    Type Parameters

    • ProvidedType = void

    • OriginType extends unknown = Observable<ProvidedType>

    • ObservableType = OriginType extends Observable<A>
          ? A
          : never

    • ReturnType = (ProvidedType | ObservableType) extends void
          ? (() => void)
          : ((observableOrValue) => Subscription)

    Parameters

    • generator: ((origin$) => Observable<unknown>)

      A function that takes an origin Observable input and returns an Observable. The Observable that is returned will be subscribed to for the life of the component.

        • (origin$): Observable<unknown>
        • Parameters

          • origin$: OriginType

          Returns Observable<unknown>

    Returns ReturnType

    A function that, when called, will trigger the origin Observable.

  • Initializes state. If it was already initialized then it resets the state.

    Parameters

    • state: T

    Returns void

  • Patches the state with provided partial state.

    Parameters

    • partialStateOrUpdaterFn: Partial<T> | Observable<Partial<T>> | ((state) => Partial<T>)

      a partial state or a partial updater function that accepts the state and returns the partial state.

    Returns void

    Throws

    Error if the state is not initialized.

  • Creates a selector.

    Type Parameters

    • Result

    Parameters

    • projector: ((s) => Result)

      A pure projection function that takes the current state and returns some new slice/projection of that state.

        • (s): Result
        • Parameters

          • s: T

          Returns Result

    • Optional config: SelectConfig

      SelectConfig that changes the behavior of selector, including the debouncing of the values until the state is settled.

    Returns Observable<Result>

    An observable of the projector results.

  • Type Parameters

    • Selectors extends Observable<unknown>[]

    • Result

    Parameters

    • Rest ...args: [...selectors: Selectors[], projector: Projector<Selectors, Result>]

    Returns Observable<Result>

  • Type Parameters

    • Selectors extends Observable<unknown>[]

    • Result

    Parameters

    Returns Observable<Result>

  • Sets the state specific value.

    Parameters

    • stateOrUpdaterFn: T | ((state) => T)

      object of the same type as the state or an updaterFn, returning such object.

    Returns void

  • Parameters

    • source: ComponentStore<T>
    • Optional options: {
          watchProperty?: keyof T | (keyof T)[];
      }
      • Optional watchProperty?: keyof T | (keyof T)[]

    Returns void

  • Creates an updater.

    Throws an error if updater is called with synchronous values (either imperative value or Observable that is synchronous) before ComponentStore is initialized. If called with async Observable before initialization then state will not be updated and subscription would be closed.

    Type Parameters

    • ProvidedType = void

    • OriginType = ProvidedType

    • ValueType = OriginType

    • ReturnType = OriginType extends void
          ? (() => void)
          : ((observableOrValue) => Subscription)

    Parameters

    • updaterFn: ((state, value) => void | T)

      A static updater function that takes 2 parameters (the current state and an argument object) and returns a new instance of the state.

        • (state, value): void | T
        • Parameters

          • state: T
          • value: OriginType

          Returns void | T

    Returns ReturnType

    A function that accepts one argument which is forwarded as the second argument to updaterFn. Every time this function is called subscribers will be notified of the state change.

Generated using TypeDoc