API Docs for: v2.11.1
Show:

Container Class

A container used to instantiate and cache objects.

Every Container must be associated with a Registry, which is referenced to determine the factory and options that should be used to instantiate objects.

The public API for Container is still in flux and should not be considered stable.

Methods

destroy

() private

A depth first traversal, destroying the container, its descendant containers and all their managed objects.

lookup

(
  • fullName
  • [options]
)
Any private

Given a fullName return a corresponding instance.

The default behaviour is for lookup to return a singleton instance. The singleton is scoped to the container, allowing multiple containers to all have their own locally scoped singletons.

let registry = new Registry();
let container = registry.container();

registry.register('api:twitter', Twitter);

let twitter = container.lookup('api:twitter');

twitter instanceof Twitter; // => true

// by default the container will return singletons
let twitter2 = container.lookup('api:twitter');
twitter2 instanceof Twitter; // => true

twitter === twitter2; //=> true

If singletons are not wanted, an optional flag can be provided at lookup.

let registry = new Registry();
let container = registry.container();

registry.register('api:twitter', Twitter);

let twitter = container.lookup('api:twitter', { singleton: false });
let twitter2 = container.lookup('api:twitter', { singleton: false });

twitter === twitter2; //=> false

Parameters:

  • fullName String
  • [options] Object optional
    • [source] String optional

      The fullname of the request source (used for local lookup)

Returns:

Any:

lookupFactory

(
  • fullName
  • [options]
)
Any private

Given a fullName, return the corresponding factory.

Parameters:

  • fullName String
  • [options] Object optional
    • [source] String optional

      The fullname of the request source (used for local lookup)

Returns:

Any:

ownerInjection

() Object private

Returns an object that can be used to provide an owner to a manually created instance.

Returns:

Object:

reset

(
  • fullName
)
private

Clear either the entire cache or just the cache for a particular key.

Parameters:

  • fullName String

    optional key to reset; if missing, resets everything

Properties

cache

InheritingDict private

factoryCache

InheritingDict private

owner

Object private

registry

Registry private

Defined in packages/container/lib/container.js:39

Available since 1.11.0

validationCache

InheritingDict private