API Reference

ValueMetadataclass

The ValueMetadata service provides information about how rs-x should handle a value type at runtime: whether it should be proxied and whether it is async.

When to use

This service receives IValueMetadataList, sorts by descending priority, then selects the first implementation where applies(value) is true.

Quick facts
Kind
class
Implements
IValueMetadata
Members
4
Package
@rs-x/core

Import

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

Example

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

await InjectionContainer.load(RsXCoreModule);

const valueMetadata = InjectionContainer.get<IValueMetadata>(
  RsXCoreInjectionTokens.IValueMetadata,
);

console.log(valueMetadata.isAsync(Promise.resolve(1))); // true
console.log(valueMetadata.needsProxy(new Map())); // true
console.log(valueMetadata.needsProxy(42)); // false (fallback metadata)

Constructor injection example

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

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

Members

4 members in this class.

constructor
constructorpublic
constructor(
  @MultiInject(RsXCoreInjectionTokens.IValueMetadataList) valueMetadataList: readonly IValueMetadata[]
)

Parameters

Name
Type
Required
valueMetadataList
readonly IValueMetadata[]
required
applies
methodpublic
public applies(value: unknown): boolean

Parameters

Name
Type
Required
value
unknown
required

Returns

boolean

isAsync
methodpublic
public isAsync(value: unknown): boolean

Parameters

Name
Type
Required
value
unknown
required

Returns

boolean

needsProxy
methodpublic
public needsProxy(value: unknown): boolean

Parameters

Name
Type
Required
value
unknown
required

Returns

boolean