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](/doc/en/lb4/apidocs.context.bindingkey.html)<unknown> _(Optional)_ Binding key
metadata [InjectBindingMetadata](/doc/en/lb4/apidocs.context.injectbindingmetadata.html) _(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(() => {...});
  }
}