Class: abstract BasePlugin
Defined in: src/plugins/builtin/base-plugin.ts:61
Base class for builtin plugins.
Remarks
Provides common functionality for Chive's builtin plugins:
- Lifecycle state management
- Logging
- Caching
- Metrics
- Event subscriptions
Subclasses should override:
onInitialize()- Custom initialization logiconShutdown()- Custom shutdown logic (optional)
Example
export class MyPlugin extends BasePlugin {
readonly id = 'pub.chive.plugin.my';
readonly manifest: IPluginManifest = {
id: 'pub.chive.plugin.my',
name: 'My Plugin',
// ...
};
protected async onInitialize(): Promise<void> {
this.context.eventBus.on('eprint.indexed', this.handleIndexed.bind(this));
}
private async handleIndexed(data: { uri: string }): Promise<void> {
this.logger.info('Eprint indexed', { uri: data.uri });
}
}
Extended by
ImportingPluginGitHubIntegrationPluginOrcidLinkingPluginDoiRegistrationPluginSemanticScholarPluginOpenAlexPlugin
Implements
Constructors
new BasePlugin()
new BasePlugin():
BasePlugin
Returns
Properties
cache
protectedcache:ICacheProvider
Defined in: src/plugins/builtin/base-plugin.ts:88
Cache provider (available after initialization).
context
protectedcontext:IPluginContext
Defined in: src/plugins/builtin/base-plugin.ts:78
Plugin context (available after initialization).
id
abstractreadonlyid:string
Defined in: src/plugins/builtin/base-plugin.ts:68
Unique plugin identifier.
Remarks
Must match manifest.id.
Implementation of
logger
protectedlogger:ILogger
Defined in: src/plugins/builtin/base-plugin.ts:83
Logger instance (available after initialization).
manifest
abstractreadonlymanifest:IPluginManifest
Defined in: src/plugins/builtin/base-plugin.ts:73
Plugin manifest.
Implementation of
metrics
protectedmetrics:IMetrics
Defined in: src/plugins/builtin/base-plugin.ts:93
Metrics provider (available after initialization).
Methods
getConfig()
protectedgetConfig<T>(key):undefined|T
Defined in: src/plugins/builtin/base-plugin.ts:226
Gets a configuration value with type safety.
Type Parameters
• T
Parameters
key
string
Configuration key
Returns
undefined | T
Configuration value or undefined
Example
const apiKey = this.getConfig<string>('apiKey');
getRequiredConfig()
protectedgetRequiredConfig<T>(key):T
Defined in: src/plugins/builtin/base-plugin.ts:242
Gets a required configuration value.
Type Parameters
• T
Parameters
key
string
Configuration key
Returns
T
Configuration value
Throws
Error if key not found
Example
const apiKey = this.getRequiredConfig<string>('apiKey');
getState()
getState():
PluginState
Defined in: src/plugins/builtin/base-plugin.ts:162
Gets current plugin state.
Returns
Current lifecycle state
Implementation of
initialize()
initialize(
context):Promise<void>
Defined in: src/plugins/builtin/base-plugin.ts:111
Initializes the plugin.
Parameters
context
Plugin context with injected dependencies
Returns
Promise<void>
Remarks
Sets up context and calls onInitialize(). Subclasses should
override onInitialize() instead of this method.