Page Contents

Home > @loopback/context > inject > binding

inject.binding() function

Inject the binding object for the given key. This is useful if a binding needs to be set up beyond just a constant value allowed by @inject.setter. The injected binding is found or created based on the metadata.bindingCreation option. See BindingCreationPolicy for more details.

Signature:

binding: (bindingKey?: string | BindingKey<unknown>, metadata?: InjectBindingMetadata) => (target: Object, member: string | undefined, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void

Parameters

Parameter Type Description
bindingKey string | BindingKey<unknown> (Optional) Binding key
metadata InjectBindingMetadata (Optional) Metadata for the injection

Returns:

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

Example

class MyAuthAction {
  @inject.binding('current-user', {
    bindingCreation: BindingCreationPolicy.ALWAYS_CREATE,
  })
  private userBinding: Binding<UserProfile>;

  async authenticate() {
    this.userBinding.toDynamicValue(() => {...});
  }
}