Manages the lifecycle of plugins and contexts.

Handles initialization, startup, and shutdown in the correct order:

  1. Plugins (infrastructure)
  2. Contexts (domain logic)
const manager = new LifecycleManager(pluginRegistry, contextRegistry);

await manager.initializePlugins(pluginContext);
await manager.initializeContexts(container, logger, configs);
await manager.startAll();
await manager.stopAll();

Accessors

Constructors

Methods

  • Initializes all plugins in dependency order.

    Parameters

    • context: PluginContext

      The plugin context

    Returns Promise<void>

    If a plugin fails to initialize

    await manager.initializePlugins(pluginContext);
    
  • Initializes all contexts in dependency order. Contexts are initialized after plugins since they depend on infrastructure.

    Parameters

    • container: Container

      The DI container

    • logger: Logger

      The logger

    • configs: Map<string, unknown>

      Context configurations

    Returns Promise<void>

    If a context fails to initialize

    await manager.initializeContexts(container, logger, contextConfigs);
    
  • Starts all plugins and contexts in dependency order.

    Returns Promise<void>

    If a plugin or context fails to start

    await manager.startAll();
    
  • Stops all contexts and plugins in reverse dependency order.

    Returns Promise<void>

    If a plugin or context fails to stop

    await manager.stopAll();