API Reference

ObjectObserverProxyPairManagerclass

Chooses an object observer/proxy factory by type and priority.

Overview

Contains object-level observer contracts and managers used to detect structural and nested changes.

Import

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

Example

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

await InjectionContainer.load(RsXStateManagerModule);

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

Constructor injection example

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

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

Members

6 members in this class.

constructor
constructorpublic
constructor(
  @Inject( RsXStateManagerInjectionTokens.IObjectObserverProxyPairFactoryProviderFactory) private readonly getObserverFactoryProvider: () => IObjectObserverProxyPairFactoryProvider,
  @Inject(RsXCoreInjectionTokens.IProxyRegistry) private readonly _proxyRegistry: IProxyRegistry
)

Parameters

NameTypeRequired
getObserverFactoryProvider()required
createInstance
methodprotected
protected createInstance(
  objectObserverInfo: IProxyTarget<unknown>,
  id: number
): IObserverProxyPair

Parameters

NameTypeRequired
objectObserverInfoIProxyTarget<unknown>required
idnumberrequired
createUniqueId
methodprotected
protected override createUniqueId(_data: IProxyTarget<unknown>): number

Parameters

NameTypeRequired
_dataIProxyTarget<unknown>required

Returns

number

getGroupId
methodprotected
protected override getGroupId(data: IProxyTarget<unknown>): unknown

Parameters

NameTypeRequired
dataIProxyTarget<unknown>required

Returns

unknown

getGroupMemberId
methodprotected
protected override getGroupMemberId( data: IProxyTarget<unknown>): IIndexWatchRule | undefined

Parameters

NameTypeRequired
dataIProxyTarget<unknown>required

Returns

IIndexWatchRule | undefined

releaseInstance
methodprotected
protected override releaseInstance( observerProxyPair: IObserverProxyPair): void

Parameters

NameTypeRequired
observerProxyPairIObserverProxyPairrequired

Returns

void