API Reference

WatchFactoryclass

DI-managed watch-handle factory. Resolve IWatchFactory from RsXStateManagerInjectionTokens instead of constructing WatchFactory directly.

Overview

Watch-factory runtime that provides keyed, reference-counted watch handles and zero-allocation listener dispatch hooks.

Import

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

Example

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

await InjectionContainer.load(RsXStateManagerModule);

const watchFactory = InjectionContainer.get<IWatchFactory>(
  RsXStateManagerInjectionTokens.IWatchFactory,
);

const model = { total: 10 };
const watch = watchFactory.create({
  context: model,
  index: 'total',
  options: {},
}).instance;

watch.watch();
console.log(watch.value); // 10

Constructor injection example

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

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

Members

5 members in this class.

constructor
constructorpublic
constructor(
  @Inject(RsXStateManagerInjectionTokens.IStateManager) private readonly _stateManager: IStateManager
)

Parameters

NameTypeRequired
_stateManagerIStateManagerrequired
createInstance
methodprotected
protected override createInstance(
  data: IWatchData,
  id: number
): IWatch

Parameters

NameTypeRequired
dataIWatchDatarequired
idnumberrequired

Returns

IWatch

createUniqueId
methodprotected
protected override createUniqueId(_data: IWatchData): number

Parameters

NameTypeRequired
_dataIWatchDatarequired

Returns

number

getGroupId
methodprotected
protected override getGroupId(data: IWatchId): unknown

Parameters

NameTypeRequired
dataIWatchIdrequired

Returns

unknown

getGroupMemberId
methodprotected
protected override getGroupMemberId(data: IWatchId): unknown

Parameters

NameTypeRequired
dataIWatchIdrequired

Returns

unknown