DiscoveryService

  
class DiscoveryService {
  static createDecorator<T>(): DiscoverableDecorator<T>
  getProviders(options: DiscoveryOptions = {}, modules: Module[] = this.getModules(options)): InstanceWrapper[]
  getControllers(options: DiscoveryOptions = {}, modules: Module[] = this.getModules(options)): InstanceWrapper[]
  getMetadataByDecorator<T extends DiscoverableDecorator<any>>(decorator: T, instanceWrapper: InstanceWrapper<any>, methodKey?: string): T extends DiscoverableDecorator<infer R> ? R | undefined : T | undefined
  protected getModules(options: DiscoveryOptions = {}): Module[]
}

Static methods

createDecorator()

Creates a decorator that can be used to decorate classes and methods with metadata. The decorator will also add the class to the collection of discoverable classes (by metadata key). Decorated classes can be discovered using the getProviders and getControllers methods.


static createDecorator<T>(): DiscoverableDecorator<T>

Parameters

There are no parameters.

Returns

DiscoverableDecorator<T> A decorator function.

Methods

getProviders()

Returns an array of instance wrappers (providers). Depending on the options, the array will contain either all providers or only providers with the specified metadata key.


getProviders(options: DiscoveryOptions = {}, modules: Module[] = this.getModules(options)): InstanceWrapper[]

Parameters

Option Type Description
options DiscoveryOptions

Discovery options.


Optional. Default is `{}`.
modules Module[]

A list of modules to filter by.


Optional. Default is `this.getModules(options)`.

Returns

InstanceWrapper[] An array of instance wrappers (providers).

getControllers()

Returns an array of instance wrappers (controllers). Depending on the options, the array will contain either all controllers or only controllers with the specified metadata key.


getControllers(options: DiscoveryOptions = {}, modules: Module[] = this.getModules(options)): InstanceWrapper[]

Parameters

Option Type Description
options DiscoveryOptions

Discovery options.


Optional. Default is `{}`.
modules Module[]

A list of modules to filter by.


Optional. Default is `this.getModules(options)`.

Returns

InstanceWrapper[] An array of instance wrappers (controllers).

getMetadataByDecorator()

Retrieves metadata from the specified instance wrapper.


getMetadataByDecorator<T extends DiscoverableDecorator<any>>(decorator: T, instanceWrapper: InstanceWrapper<any>, methodKey?: string): T extends DiscoverableDecorator<infer R> ? R | undefined : T | undefined

Parameters

Option Type Description
decorator T

The decorator to retrieve metadata of.

instanceWrapper InstanceWrapper

Reference to the instance wrapper.

methodKey string

An optional method key to retrieve metadata from.


Optional. Default is `undefined`.

Returns

T extends DiscoverableDecorator<infer R> ? R | undefined : T | undefined Discovered metadata.

getModules()

Returns a list of modules to be used for discovery.


protected getModules(options: DiscoveryOptions = {}): Module[]

Parameters

Option Type Description
options DiscoveryOptions

Optional. Default is {}.

Returns

Module[]