Overview
Watch-factory runtime that provides keyed, reference-counted watch handles and zero-allocation listener dispatch hooks.
API Reference
DI-managed watch-handle factory. Resolve IWatchFactory from RsXStateManagerInjectionTokens instead of constructing WatchFactory directly.
import { WatchFactory } from '@rs-x/state-manager';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); // 10import { Inject } from '@rs-x/core';
import {
RsXStateManagerInjectionTokens,
type IWatchFactory,
} from '@rs-x/state-manager';
class MyConsumer {
constructor(
@Inject(RsXStateManagerInjectionTokens.IWatchFactory)
private readonly dependency: IWatchFactory,
) {}
}5 members in this class.
constructor(
@Inject(RsXStateManagerInjectionTokens.IStateManager) private readonly _stateManager: IStateManager
)Parameters
| Name | Type | Required |
|---|---|---|
| _stateManager | IStateManager | required |
protected override createInstance(
data: IWatchData,
id: number
): IWatchParameters
| Name | Type | Required |
|---|---|---|
| data | IWatchData | required |
| id | number | required |
Returns
protected override createUniqueId(_data: IWatchData): numberParameters
| Name | Type | Required |
|---|---|---|
| _data | IWatchData | required |
Returns
number
protected override getGroupId(data: IWatchId): unknownParameters
| Name | Type | Required |
|---|---|---|
| data | IWatchId | required |
Returns
unknown
protected override getGroupMemberId(data: IWatchId): unknownParameters
| Name | Type | Required |
|---|---|---|
| data | IWatchId | required |
Returns
unknown