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
Base logger instance
cache
Base cache provider
metrics
Base metrics provider
eventBus
Main plugin event bus
permissionEnforcer
Permission enforcer instance
Returns
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
Plugin manifest
config
Record<string, unknown>
Plugin-specific configuration
Returns
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