Skip to main content
Module

x/momentum/di/di-container.ts>DiContainer

Momentum is an open-source framework for building server-side Deno applications in TypeScript. It provides the paradigms and design patterns to guide developers to create robust, scalable, and enterprise-grade applications.
Latest
class DiContainer
import { DiContainer } from "https://deno.land/x/momentum@v0.8.2/di/di-container.ts";

Dependency injection container which registers dependencies and creates dependency graphs represent the dependency tree.

Constructors

new
DiContainer(name: string, parent?: DiContainer)

Properties

readonly
name
readonly
qualifiedName

Methods

private
buildCtorSubtree(
definition: TypeDefinition,
nodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
)
private
buildDependencyGraph(
identifier: TypeIdentifier,
dependencyPath: TypeIdentifier[],
partialNodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
): DependencyGraphNode | undefined
private
buildFactorySubtree(
defintion: FactoryDefinition,
nodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
)
private
buildPropSubtree(
definition: TypeDefinition,
nodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
)
private
buildTypeNode(
identifier: TypeIdentifier,
definition: TypeDefinition,
partialNodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
dependencyPath: TypeIdentifier[],
ignoreMissing: boolean,
)
private
getAlias(identifier: TypeIdentifier): TypeIdentifier | undefined
private
getCtorOverrides(type: Type): Map<number, PartialParameter>
private
getDefinition(identifier: TypeIdentifier): Definition | undefined
private
getExporter(identifier: TypeIdentifier): DiContainer | undefined
private
getInjectionErrorMessage(identifier: TypeIdentifier, dependencyPath: TypeIdentifier[])
private
getPropOverrides(type: Type): Map<string, PartialParameter>
buildFactoryNode(
identifier: TypeIdentifier,
definition: FactoryDefinition,
partialNodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
dependencyPath: TypeIdentifier[],
ignoreMissing: boolean,
)
createChild(name: string)
createSibling(name: string)
deepClone(cloneMap?: Map<DiContainer, DiContainer>): { clone: DiContainer; fullSet: DiContainer[]; }
import(identifier: TypeIdentifier, container: DiContainer)
register(identifier: TypeIdentifier, definition: Definition)
registerCtorParam(
type: Type,
paramIndex: number,
param: PartialParameter,
)
registerFactory(
identifier: TypeIdentifier,
factory: FactoryFunction,
params?: TypeIdentifier[],
scope?: Scope | string,
)
registerFromMetadata(
target: Type,
paramTypes: Type[],
identifier?: TypeIdentifier,
scope?: Scope | string,
)
registerProperty(
type: Type,
propName: string,
param: PartialParameter,
)
registerType(
identifier: TypeIdentifier,
type: Type,
params?: Parameter[],
props?: Record<string, Parameter>,
scope?: Scope | string,
)
registerValue(
identifier: TypeIdentifier,
value: unknown,
scope?: Scope | string,
)

Static Properties

private
optional
rootContainer: DiContainer