Page Contents

Home > @loopback/context > Context

Context class

Context provides an implementation of Inversion of Control (IoC) container

Signature:

export declare class Context extends EventEmitter 

Extends: EventEmitter

Constructors

Constructor Modifiers Description
(constructor)(_parent, name)   Create a new context.

Properties

Property Modifiers Type Description
_debug protected Debugger A debug function which can be overridden by subclasses.
_parent? protected Context (Optional) Parent context
configResolver protected ConfigurationResolver Configuration resolver
name readonly string Name of the context
registry <p>protected</p><p>readonly</p> Map<string, Binding> Key to binding map as the internal registry
scope   BindingScope Scope for binding resolution
subscriptionManager readonly ContextSubscriptionManager Manager for observer subscriptions
tagIndexer <p>protected</p><p>readonly</p> ContextTagIndexer Indexer for bindings by tag

Methods

Method Modifiers Description
_findByTagIndex(tag) protected Find bindings by tag leveraging indexes
_mergeWithParent(childList, parentList) protected  
add(binding)   Add a binding to the context. If a locked binding already exists with the same key, an error will be thrown.
bind(key)   Create a binding with the given key in the context. If a locked binding already exists with the same key, an error will be thrown.
close()   Close the context: clear observers, stop notifications, and remove event listeners from its parent context.
configure(key)   <p>Create a corresponding binding for configuration of the target bound by the given key in the context.</p><p>For example, ctx.configure('controllers.MyController').to({x: 1}) will create binding controllers.MyController:$config with value {x: 1}.</p>
contains(key)   Check if a binding exists with the given key in the local context without delegating to the parent context
createView(filter, comparator, options)   Create a view of the context chain with the given binding filter
debug(args) protected Wrap the debug statement so that it always print out the context name as the prefix
emitError(err)   Emit an error event
emitEvent(type, event)   A strongly-typed method to emit context events
find(pattern)   Find bindings using a key pattern or filter function
findByTag(tagFilter)   Find bindings using the tag filter. If the filter matches one of the binding tags, the binding is included.
findOrCreateBinding(key, policy)   Find or create a binding for the given key
get(keyWithPath, session)   Get the value bound to the given key, throw an error when no value is bound for the given key.
get(keyWithPath, options)   Get the value bound to the given key, optionally return a (deep) property of the bound value.
getBinding(key)   Look up a binding by key in the context and its ancestors. If no matching binding is found, an error will be thrown.
getBinding(key, options)   Look up a binding by key in the context and its ancestors. If no matching binding is found and options.optional is not set to true, an error will be thrown.
getConfig(key, propertyPath, resolutionOptions)   Resolve configuration for the binding by key
getConfigAsValueOrPromise(key, propertyPath, resolutionOptions)   Get the value or promise of configuration for a given binding by key
getConfigSync(key, propertyPath, resolutionOptions)   Resolve configuration synchronously for the binding by key
getDebugNamespace() protected Get the debug namespace for the context class. Subclasses can override this method to supply its own namespace.
getOwnerContext(keyOrBinding)   Get the owning context for a binding or its key
getResolutionContext(binding)   Locate the resolution context for the given binding. Only bindings in the resolution context and its ancestors are visible as dependencies to resolve the given binding
getScopedContext(scope)   Get the context matching the scope
getSync(keyWithPath, session)   <p>Get the synchronous value bound to the given key, optionally return a (deep) property of the bound value.</p><p>This method throws an error if the bound value requires async computation (returns a promise). You should never rely on sync bindings in production code.</p>
getSync(keyWithPath, options)   <p>Get the synchronous value bound to the given key, optionally return a (deep) property of the bound value.</p><p>This method throws an error if the bound value requires async computation (returns a promise). You should never rely on sync bindings in production code.</p>
inspect(options)   Inspect the context and dump out a JSON object representing the context hierarchy
isBound(key)   Check if a key is bound in the context or its ancestors
isSubscribed(observer)   Check if an observer is subscribed to this context
isVisibleTo(ctx)   Check if this context is visible (same or ancestor) to the given one
on(eventName, listener)   The “bind” event is emitted when a new binding is added to the context. The “unbind” event is emitted when an existing binding is removed.
on(event, listener)    
once(eventName, listener)   The “bind” event is emitted when a new binding is added to the context. The “unbind” event is emitted when an existing binding is removed.
once(event, listener)    
setupConfigurationResolverIfNeeded() protected Set up the configuration resolver if needed
subscribe(observer)   Add a context event observer to the context
toJSON()   Create a plain JSON object for the context
unbind(key)   Unbind a binding from the context. No parent contexts will be checked.
unsubscribe(observer)   Remove the context event observer from the context