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 |