Skip to content

Container

@tsed/di

Usage

typescript
import { Container } from "@tsed/di";

See /packages/di/src/common/domain/Container.ts.

Overview

ts
class Container extends Map<TokenProvider, Provider> {
    add(token: TokenProvider, settings?: Partial<ProviderOpts>): this;
    addProvider(token: TokenProvider, settings?: Partial<ProviderOpts>): this;
    hasProvider(token: TokenProvider): boolean;
    setProvider(token: TokenProvider, provider: Provider): this;
    getProvider<T extends Provider = Provider>(token: TokenProvider | undefined): T | undefined;
    getProviders(type?: TokenProvider | ProviderType | string | string[]): Provider[];
    addProviders(container: Map<TokenProvider, Provider>): void;
}

Description

Provider container managing registered providers and their metadata.

Extends Map to provide specialized methods for adding, retrieving, and managing providers within the dependency injection system. Acts as a registry for all injectable classes and values.

Usage

typescript
import {Container} from "@tsed/di";

const container = new Container();
container.add(MyService, {scope: ProviderScope.SINGLETON});

const provider = container.getProvider(MyService);
const controllers = container.getProviders(ProviderType.CONTROLLER);

add

ts
add(token: TokenProvider, settings?: Partial<ProviderOpts>): this;

addProvider

ts
addProvider(token: TokenProvider, settings?: Partial<ProviderOpts>): this;

Add a provider to the

hasProvider

ts
hasProvider(token: TokenProvider): boolean;

setProvider

ts
setProvider(token: TokenProvider, provider: Provider): this;

Add a provider to the

getProvider

ts
getProvider<T extends Provider = Provider>(token: TokenProvider | undefined): T | undefined;

The getProvider() method returns a specified element from a Map object.

getProviders

ts
getProviders(type?: TokenProvider | ProviderType | string | string[]): Provider[];
  • type (TokenProvider | ProviderType | string | string[]): Optional. Filter the list by the given ProviderType.

Get all providers registered in the injector container.

addProviders

ts
addProviders(container: Map<TokenProvider, Provider>): void;

Released under the MIT License.