API Reference

ObservableProxyFactoryclass

Creates observable observers that emit distinct latest values through observable-accessor caching.

Overview

Observable proxy factory and change contracts for emitted value transitions.

Import

import { ObservableProxyFactory } from '@rs-x/state-manager';

Example

import { InjectionContainer } from '@rs-x/core';
import {
  RsXStateManagerInjectionTokens,
  RsXStateManagerModule,
  type IObservableProxyFactory,
} from '@rs-x/state-manager';

await InjectionContainer.load(RsXStateManagerModule);

// Resolve from DI container (do not construct this service directly).
const observableProxy = InjectionContainer.get<IObservableProxyFactory>(
  RsXStateManagerInjectionTokens.IObservableProxyFactory,
);
console.log(observableProxy);

Constructor injection example

import { Inject } from '@rs-x/core';
import {
  RsXStateManagerInjectionTokens,
  type IObservableProxyFactory,
} from '@rs-x/state-manager';

class MyConsumer {
  constructor(
    @Inject(RsXStateManagerInjectionTokens.IObservableProxyFactory)
    private readonly dependency: IObservableProxyFactory,
  ) {}
}

Members

5 members in this class.

constructor
constructorpublic
constructor(
  @Inject(RsXCoreInjectionTokens.IObservableAccessor) private readonly _observableAccessor: IObservableAccessor
)

Parameters

NameTypeRequired
_observableAccessorIObservableAccessorrequired
getId
methodpublic
public override getId(data: IObservableProxyData): Observable<unknown>

Parameters

NameTypeRequired
dataIObservableProxyDatarequired

Returns

Observable<unknown>

createId
methodprotected
protected override createId(data: IObservableProxyData): Observable<unknown>

Parameters

NameTypeRequired
dataIObservableProxyDatarequired

Returns

Observable<unknown>

createInstance
methodprotected
protected override createInstance(
  data: IObservableProxyData,
  id: Observable<unknown>
): IObservableObserverProxyPair

Parameters

NameTypeRequired
dataIObservableProxyDatarequired
idObservable<unknown>required
releaseInstance
methodprotected
protected override releaseInstance( observableObserverWithProxy: IObservableObserverProxyPair): void

Parameters

NameTypeRequired
observableObserverWithProxyIObservableObserverProxyPairrequired

Returns

void