Skip to main content

Interface: IPluginManager

Defined in: src/types/interfaces/plugin.interface.ts:484

Plugin manager interface for lifecycle management.

Remarks

Manages plugin loading, initialization, and shutdown with proper dependency ordering and error handling.

Example

const manager = container.resolve<IPluginManager>('IPluginManager');

// Load a plugin
await manager.loadPlugin(manifest);

// Get all loaded plugins
const plugins = manager.getAllPlugins();

// Shutdown all plugins
await manager.shutdownAll();

Since

0.1.0

Methods

getAllPlugins()

getAllPlugins(): readonly IChivePlugin[]

Defined in: src/types/interfaces/plugin.interface.ts:514

Gets all loaded plugins.

Returns

readonly IChivePlugin[]

Array of all loaded plugin instances


getPlugin()

getPlugin(pluginId): undefined | IChivePlugin

Defined in: src/types/interfaces/plugin.interface.ts:507

Gets a loaded plugin by ID.

Parameters

pluginId

string

ID of the plugin to get

Returns

undefined | IChivePlugin

Plugin instance or undefined if not loaded


getPluginState()

getPluginState(pluginId): undefined | PluginState

Defined in: src/types/interfaces/plugin.interface.ts:522

Gets the current state of a plugin.

Parameters

pluginId

string

ID of the plugin

Returns

undefined | PluginState

Plugin state or undefined if not loaded


loadPlugin()

loadPlugin(manifest): Promise<void>

Defined in: src/types/interfaces/plugin.interface.ts:491

Loads and initializes a plugin from its manifest.

Parameters

manifest

IPluginManifest

Plugin manifest

Returns

Promise<void>

Throws

If loading or initialization fails


loadPluginsFromDirectory()

loadPluginsFromDirectory(path): Promise<void>

Defined in: src/types/interfaces/plugin.interface.ts:537

Loads all plugins from a directory.

Parameters

path

string

Path to plugin directory

Returns

Promise<void>


reloadPlugin()

reloadPlugin(pluginId): Promise<void>

Defined in: src/types/interfaces/plugin.interface.ts:530

Reloads a plugin (unload then load).

Parameters

pluginId

string

ID of the plugin to reload

Returns

Promise<void>

Throws

If reload fails


shutdownAll()

shutdownAll(): Promise<void>

Defined in: src/types/interfaces/plugin.interface.ts:542

Shuts down all loaded plugins.

Returns

Promise<void>


unloadPlugin()

unloadPlugin(pluginId): Promise<void>

Defined in: src/types/interfaces/plugin.interface.ts:499

Unloads a plugin, calling its shutdown method.

Parameters

pluginId

string

ID of the plugin to unload

Returns

Promise<void>

Throws

If plugin not found or shutdown fails