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;
    get<T extends Provider = Provider>(token: TokenProvider | undefined): T | undefined;
    getMany(type?: TokenProvider | ProviderType | string | string[]): Provider[];
    merge(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.get(MyService);
const controllers = container.getMany(ProviderType.CONTROLLER);

add

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

Add a provider to the

get

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

getMany

ts
getMany(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.

merge

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

Released under the MIT License.