Context provided to plugins during initialization.
Allows plugins to register services and access the application container.
class DatabasePlugin implements Plugin { async initialize(context: PluginContext): Promise<void> { const config = context.getConfig<DatabaseConfig>(); const database = new Database(config); context.container.register('database', () => database, { lifetime: ServiceLifetime.SINGLETON }); }} Copy
class DatabasePlugin implements Plugin { async initialize(context: PluginContext): Promise<void> { const config = context.getConfig<DatabaseConfig>(); const database = new Database(config); context.container.register('database', () => database, { lifetime: ServiceLifetime.SINGLETON }); }}
Gets configuration for this plugin.
The configuration type
The plugin configuration
const config = context.getConfig<DatabaseConfig>();console.log(config.host, config.port); Copy
const config = context.getConfig<DatabaseConfig>();console.log(config.host, config.port);
Gets a service from the container if it exists.
The service type
The service name
The service instance if it exists, undefined otherwise
const metrics = context.getService<Metrics>('metrics');if (metrics) { metrics.increment('database.connections');} Copy
const metrics = context.getService<Metrics>('metrics');if (metrics) { metrics.increment('database.connections');}
The dependency injection container. Plugins can register services here.
Logger instance for the plugin.
Context provided to plugins during initialization.
Allows plugins to register services and access the application container.
Example