API Reference

IndexValueAccessorclass

Composite accessor service that selects the first matching accessor strategy (by priority) and delegates all read/write operations to that strategy.

Import

import { IndexValueAccessor } from '@rs-x/core';

Example

import {
  InjectionContainer,
  RsXCoreInjectionTokens,
  RsXCoreModule,
  type IIndexValueAccessor,
} from '@rs-x/core';

await InjectionContainer.load(RsXCoreModule);

const accessor = InjectionContainer.get<IIndexValueAccessor>(
  RsXCoreInjectionTokens.IIndexValueAccessor,
);

const model = {
  user: { name: 'Ada' },
  list: [10, 20, 30],
  map: new Map([['x', 99]]),
};

console.log(accessor.getValue(model.user, 'name')); // Ada
console.log(accessor.getValue(model.list, 1)); // 20
console.log(accessor.getValue(model.map, 'x')); // 99

Constructor injection example

import { Inject, RsXCoreInjectionTokens, type IIndexValueAccessor } from '@rs-x/core';

class MyConsumer {
  constructor(
    @Inject(RsXCoreInjectionTokens.IIndexValueAccessor)
    private readonly dependency: IIndexValueAccessor,
  ) {}
}

Members

7 members in this class.

constructor
constructorpublic
constructor(
  @MultiInject(RsXCoreInjectionTokens.IIndexValueAccessorList) accessors: readonly IIndexValueAccessor[]
)

Parameters

Name
Type
Required
accessors
readonly IIndexValueAccessor[]
required
applies
methodpublic
public applies(
  context: unknown,
  index: unknown
): boolean

Parameters

Name
Type
Required
context
unknown
required
index
unknown
required

Returns

boolean

getIndexes
methodpublic
public getIndexes(
  context: unknown,
  index: unknown
): IterableIterator<unknown>

Parameters

Name
Type
Required
context
unknown
required
index
unknown
required

Returns

IterableIterator<unknown>

getResolvedValue
methodpublic
public getResolvedValue(
  context: unknown,
  index: unknown
): unknown

Parameters

Name
Type
Required
context
unknown
required
index
unknown
required

Returns

unknown

getValue
methodpublic
public getValue(
  context: unknown,
  index: unknown
): unknown

Parameters

Name
Type
Required
context
unknown
required
index
unknown
required

Returns

unknown

hasValue
methodpublic
public hasValue(
  context: unknown,
  index: unknown
): boolean

Parameters

Name
Type
Required
context
unknown
required
index
unknown
required

Returns

boolean

setValue
methodpublic
public setValue(
  context: unknown,
  index: unknown,
  value: unknown
): void

Parameters

Name
Type
Required
context
unknown
required
index
unknown
required
value
unknown
required

Returns

void