| 74 | * @param metadata - Optional injection metadata |
| 75 | */ |
| 76 | export function extensions( |
| 77 | extensionPointName?: string, |
| 78 | metadata?: InjectionMetadata, |
| 79 | ) { |
| 80 | return inject( |
| 81 | '', |
| 82 | {...metadata, decorator: '@extensions'}, |
| 83 | (ctx, injection, session) => { |
| 84 | assertTargetType(injection, Function, 'Getter function'); |
| 85 | const bindingFilter = filterByExtensionPoint( |
| 86 | injection, |
| 87 | session, |
| 88 | extensionPointName, |
| 89 | ); |
| 90 | return createViewGetter( |
| 91 | ctx, |
| 92 | bindingFilter, |
| 93 | injection.metadata.bindingComparator, |
| 94 | {...metadata, ...asResolutionOptions(session)}, |
| 95 | ); |
| 96 | }, |
| 97 | ); |
| 98 | } |
| 99 | |
| 100 | export namespace extensions { |
| 101 | /** |