Skip to main content

Container

Container is a Brandi class whose instances store information about dependencies, resolve dependencies, and inject dependencies into targets.

Container Methods​

bind(token)​

Binds the token to an implementation.

Arguments​

  1. token: Token — a token to be bound.

Returns​

Binding Type syntax:


use(...tokens).from(module)​

Uses bindings from a dependency module.

Arguments​

use(...tokens)​
  1. ...tokens: Token[] — tokens to be used from a dependency module.
use(...tokens).from(module)​
  1. module: DependencyModule — a dependency module.

when(condition)​

Creates a conditional binding.

Arguments​

  1. condition: Tag | UnknownCreator — a condition.

Returns​

bind or use syntax:


extend(container)​

Sets the parent container. For more information, see Hierarchical Containers section.

Arguments​

  1. container: Container | null — a Container or null that will be set as the parent container.

Returns​

this — the container.


get(token)​

Gets a dependency bound to the token.

Arguments​

  1. token: TokenValue — token for which a dependence will be got.

Returns​

TokenType<TokenValue> — a dependency bound to the token.


clone()​

Returns an unlinked clone of the container.

Returns​

Container — new container.

Example​

import { Container } from 'brandi';

const originalContainer = new Container();
const containerClone = originalContainer.clone();

expect(containerClone).toBeInstanceOf(Container);
expect(containerClone).not.toBe(originalContainer);

capture()​

Captures (snapshots) the current container state.

note

The capture() method works only in development mode (process.env.NODE_ENV !== 'production').

Container.capture is undefined in production mode.

restore()​

Restores the captured container state.

note

The restore() method works only in development mode (process.env.NODE_ENV !== 'production').

Container.restore is undefined in production mode.

Example​

import { Container, token } from 'brandi';

const TOKENS = {
apiKey: token<string>('API Key'),
};

const container = new Container();
container.bind(TOKENS.apiKey).toConstant('#key9428');

container.capture();

container.bind(TOKENS.apiKey).toConstant('#testKey');

const testKey = container.get(TOKENS.apiKey);

container.restore();

const originalKey = container.get(TOKENS.apiKey);

expect(testKey).toBe('#testKey');
expect(originalKey).toBe('#key9428');

createContainer()​

createContainer() — is alias for new Container().