Page Contents

Home > @loopback/core > extensions > list

extensions.list() function

Inject an array of resolved extension instances for the extension point. The list is a snapshot of registered extensions when the injection is fulfilled. Extensions added or removed afterward won’t impact the list.

Signature:

function list(extensionPointName?: string, metadata?: InjectionMetadata): (target: Object, member: string | undefined, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;

Parameters

Parameter Type Description
extensionPointName string Name of the extension point. If not supplied, we use the name tag from the extension point binding or the class name of the extension point class. If a class needs to inject extensions from multiple extension points, use different extensionPointName for different types of extensions.
metadata InjectionMetadata Optional injection metadata

Returns:

(target: Object, member: string | undefined, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void

Example

import {extensionPoint, extensions} from '@loopback/core';

@extensionPoint(GREETER_EXTENSION_POINT_NAME)
export class GreetingService {
 constructor(
   @extensions.list() // Inject an array of extensions for the extension point
   private greeters: Greeter[],
   // ...
) {
  // ...
}