/** * 存储插件接口定义 * 允许用户通过插件方式扩展存储适配器 */ import { StorageAdapter, StorageConfig } from './StorageAdapter'; import { StorageFactory } from '../adapters/StorageFactory'; /** * 存储插件元数据 */ export interface StoragePluginMetadata { /** * 插件名称 */ name: string; /** * 插件版本 */ version: string; /** * 插件描述 */ description?: string; /** * 作者信息 */ author?: string; /** * 存储类型标识 */ storageType: string; } /** * 存储插件接口 */ export interface StoragePlugin { /** * 插件元数据 */ metadata: StoragePluginMetadata; /** * 创建存储适配器实例 * @returns 存储适配器实例 */ createAdapter(): StorageAdapter; /** * 注册插件到存储工厂 * @param factory 存储工厂实例 */ register(factory: StorageFactory): void; /** * 验证存储配置是否有效 * @param config 存储配置 * @returns 是否有效以及错误信息 */ validateConfig(config: StorageConfig): { isValid: boolean; error?: string }; } /** * 存储插件加载器接口 */ export interface StoragePluginLoader { /** * 加载单个插件 * @param plugin 存储插件实例 */ loadPlugin(plugin: StoragePlugin): void; /** * 加载多个插件 * @param plugins 存储插件实例数组 */ loadPlugins(plugins: StoragePlugin[]): void; /** * 从路径加载插件 * @param pluginPath 插件模块路径 */ loadPluginFromPath(pluginPath: string): Promise; /** * 从目录加载多个插件 * @param directoryPath 插件目录路径 */ loadPluginsFromDirectory(directoryPath: string): Promise; }