Fake Mirrors
    Preparing search index...

    Class DIContainer

    A lightweight Dependency Injection container.

    Supports registering dependencies as singletons or transients and includes built-in detection for circular dependencies.

    import { DIContainer } from '@famir/common'

    // Get the global container instance.
    const container = DIContainer.getInstance()

    // Register a singleton dependency.
    container.registerSingleton('config', () => ({ level: 'warn' }))

    // Register a transient dependency.
    container.registerTransient('logger', (c) => new Logger(c.resolve('config')))

    // Resolve dependencies.
    const config = container.resolve('config')
    const logger = container.resolve('logger')
    • Checks if a dependency token is registered in the container.

      Parameters

      • token: DIToken

        The unique identifier for the dependency.

      Returns boolean

      true if the token is registered, false otherwise.

    • Registers a singleton dependency.

      The same instance is returned on every resolution.

      Type Parameters

      • T

        The type of the dependency.

      Parameters

      • token: DIToken

        The unique identifier for the dependency.

      • factory: DIFactory<T>

        The function to create the dependency instance.

      Returns void

      Error If the token is already registered.

    • Registers a transient dependency.

      A new instance is created each time the dependency is resolved.

      Type Parameters

      • T

        The type of the dependency.

      Parameters

      • token: DIToken

        The unique identifier for the dependency.

      • factory: DIFactory<T>

        The function to create the dependency instance.

      Returns void

      Error If the token is already registered.

    • Resolves a registered dependency.

      Type Parameters

      • T

        The type of the dependency.

      Parameters

      • token: DIToken

        The unique identifier for the dependency.

      Returns T

      The resolved dependency instance.

      Error If the token is not registered or a circular dependency is detected.

    • Resolves a dependency, returning null if it is not registered.

      Type Parameters

      • T

        The type of the dependency.

      Parameters

      • token: DIToken

        The unique identifier for the dependency.

      Returns T | null

      The resolved dependency instance, or null if the token is not found.