Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Container

A container manages a map of namespaces

Hierarchy

  • Container

Index

Constructors

constructor

Properties

Private children

children: Map<string, Container>

Private namespaces

namespaces: Map<string, NamespaceUnion> = ...

Accessors

empty

  • get empty(): boolean
  • Returns if this container is empty

    Returns boolean

Methods

addChild

  • Adds a child container to this container

    Parameters

    • name: string

      The child container name

    • options: ContainerOptions

      Options for child container

    Returns void

addNamespace

  • Adds a new namespace

    Parameters

    • name: string

      The namespace name

    • Optional func: CustomNamespace

      If provided, uses this object as a namespace resolver

    Returns void

bind

  • bind<I>(name: string, namespace?: string): ToObject<I>

create

  • create<I>(clazz: Class<I, unknown>, parameters?: unknown[]): I
  • Resolves all dependencies required by clazz and then creates a new instance

    Type parameters

    • I

      Return value of clazz (Which is an instance)

    Parameters

    • clazz: Class<I, unknown>

      The class to resolve dependencies and create a new instance from

    • Optional parameters: unknown[]

      Additional parameters to be passed to the constructor

    Returns I

getChild

  • Returns a child container

    Parameters

    • name: string

      The child container name

    Returns Container

getNamespace

rebind

  • rebind<I>(name: string, namespace?: string): ToObject<I>

removeChild

  • removeChild(name: string): void
  • Removes a child container only if its empty

    Parameters

    • name: string

      The child container name

    Returns void

removeNamespace

  • removeNamespace(name: string): void
  • Removes a custom namespace if the canBeRemoved function returns true or a native one if its not empty

    Parameters

    • name: string

      The namespace to remove

    Returns void

resolve

  • resolve(injectionEntry: string, filter?: Filter): unknown
  • resolve(injectionEntry: string, filter?: Filter, array?: boolean): unknown
  • Resolves an injection entry

    Parameters

    • injectionEntry: string

      An injection entry (e.g. "house:SmallHouse")

    • Optional filter: Filter

      Filter passed to Namespace.resolve

    Returns unknown

  • Resolves an injection entry and returns an array

    Parameters

    • injectionEntry: string

      An injection entry (e.g. "house:SmallHouse")

    • Optional filter: Filter

      Filter passed to Namespace.resolve

    • Optional array: boolean

      If true, this will resolve an array. The array size can be controlled using {@link Filter.arrayMaxSize}

    Returns unknown

unbind

  • unbind(name: string, namespace?: string): void