MCPcopy
hub / github.com/loopbackio/loopback-next / asClassOrProvider

Function asClassOrProvider

packages/context/src/binding-inspector.ts:99–114  ·  view source on GitHub ↗
(
  target: Constructor<T | Provider<T>> | DynamicValueProviderClass<T>,
)

Source from the content-addressed store, hash-verified

97 * @typeParam T - Value type
98 */
99export function asClassOrProvider<T>(
100 target: Constructor<T | Provider<T>> | DynamicValueProviderClass<T>,
101): BindingTemplate<T> {
102 // Add a template to bind to a class or provider
103 return function bindAsClassOrProvider(binding) {
104 if (isProviderClass(target)) {
105 asProvider(target)(binding);
106 } else if (isDynamicValueProviderClass<T>(target)) {
107 binding.toDynamicValue(target).tag(ContextTags.DYNAMIC_VALUE_PROVIDER, {
108 [ContextTags.TYPE]: ContextTags.DYNAMIC_VALUE_PROVIDER,
109 });
110 } else {
111 binding.toClass(target as Constructor<T & object>);
112 }
113 };
114}
115
116/**
117 * Convert binding scope and tags as a template function

Callers 2

injectableFunction · 0.90
bindingTemplateForFunction · 0.85

Calls 6

isProviderClassFunction · 0.85
asProviderFunction · 0.85
tagMethod · 0.80
toDynamicValueMethod · 0.80
toClassMethod · 0.80

Tested by

no test coverage detected