import { DiContainer } from "https://deno.land/x/momentum@v0.8.2/di/mod.ts";
Dependency injection container which registers dependencies and creates dependency graphs represent the dependency tree.
Constructors
new
DiContainer(name: string, parent?: DiContainer)Methods
private
buildCtorSubtree(definition: TypeDefinition,
path: TypeIdentifier[],
nodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
private
buildDependencyGraph(identifier: TypeIdentifier,
dependencyPath: TypeIdentifier[],
partialNodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
private
buildFactorySubtree(defintion: FactoryDefinition,
path: TypeIdentifier[],
nodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
private
buildPropSubtree(definition: TypeDefinition,
path: TypeIdentifier[],
nodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
ignoreMissing: boolean,
private
buildTypeNode(identifier: TypeIdentifier,
definition: TypeDefinition,
partialNodes: Map<TypeIdentifier, PartialDependencyGraphNode>,
dependencyPath: TypeIdentifier[],
ignoreMissing: boolean,
private
detectCircularDependencies(node: NullableDependencyGraphNode, ancestors?: NullableDependencyGraphNode[])private
getAlias(identifier: TypeIdentifier): TypeIdentifier | undefinedprivate
getCtorOverrides(type: Type): Map<number, PartialParameter>private
getDefinition(identifier: TypeIdentifier): Definition | undefinedprivate
getDefinitionIdentifiers(): TypeIdentifier[]private
getExporter(identifier: TypeIdentifier): DiContainer | undefinedprivate
getInjectionErrorMessage(identifier: TypeIdentifier, dependencyPath: TypeIdentifier[])private
getPropOverrides(type: Type): Map<string, PartialParameter>private
invalidateDependencyGraph()private
partialInvalidateDependencyGraph(...identifiers: TypeIdentifier[])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[]; }
getDependencyGraph(identifier: TypeIdentifier)
import(identifier: TypeIdentifier, container: DiContainer)
isRegistered(identifier: TypeIdentifier)
preCompileDependencyGraph(ignoreMissing?)
register(identifier: TypeIdentifier, definition: Definition)
registerAlias(identifier: TypeIdentifier, alias: TypeIdentifier)
registerFactory()
identifier: TypeIdentifier,
factory: FactoryFunction,
params?: TypeIdentifier[],
scope?: Scope | string,
registerType()
identifier: TypeIdentifier,
type: Type,
params?: Parameter[],
props?: Record<string, Parameter>,
scope?: Scope | string,
Static Properties
private
optional
rootContainer: DiContainer