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