Skip to main content

Class: PluginContextFactory

Defined in: src/plugins/core/plugin-context.ts:55

Factory for creating plugin contexts.

Remarks​

Creates IPluginContext instances with scoped dependencies for each plugin. All services are automatically prefixed/labeled with the plugin ID for proper isolation and observability.

Example​

const factory = container.resolve(PluginContextFactory);

const context = factory.createContext(manifest, config);

// Context is ready to be passed to plugin.initialize()
await plugin.initialize(context);

Constructors​

new PluginContextFactory()​

new PluginContextFactory(logger, cache, metrics, eventBus, permissionEnforcer): PluginContextFactory

Defined in: src/plugins/core/plugin-context.ts:95

Creates a new PluginContextFactory.

Parameters​

logger​

ILogger

Base logger instance

cache​

ICacheProvider

Base cache provider

metrics​

IMetrics

Base metrics provider

eventBus​

PluginEventBus

Main plugin event bus

permissionEnforcer​

PermissionEnforcer

Permission enforcer instance

Returns​

PluginContextFactory

Methods​

cleanup()​

cleanup(pluginId): void

Defined in: src/plugins/core/plugin-context.ts:160

Cleans up resources for a plugin.

Parameters​

pluginId​

string

ID of plugin to clean up

Returns​

void

Remarks​

Called when a plugin is unloaded to clean up:

  • Event bus subscriptions
  • Storage usage tracking

createContext()​

createContext(manifest, config): IPluginContext

Defined in: src/plugins/core/plugin-context.ts:126

Creates a context for a plugin.

Parameters​

manifest​

IPluginManifest

Plugin manifest

config​

Record<string, unknown>

Plugin-specific configuration

Returns​

IPluginContext

Plugin context with scoped dependencies

Example​

const context = factory.createContext(manifest, {
apiKey: 'xxx',
enableFeature: true,
});

getScopedEventBus()​

getScopedEventBus(pluginId): undefined | ScopedPluginEventBus

Defined in: src/plugins/core/plugin-context.ts:180

Gets the scoped event bus for a plugin.

Parameters​

pluginId​

string

Plugin ID

Returns​

undefined | ScopedPluginEventBus

Scoped event bus or undefined