UNPKG

@nullplatform/llm-gateway-sdk

Version:
97 lines 2.94 kB
"use strict"; // packages/sdk/src/base/plugin.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.MainProcessorPlugin = exports.PostProcessorPlugin = exports.PreProcessorPlugin = exports.BasePlugin = void 0; class BasePlugin { // Optional hooks with default implementations async onLoad() { // Override in subclass if needed } async onUnload() { // Override in subclass if needed } async onConfigChange(newConfig) { // Override in subclass if needed } async healthCheck() { return true; } // Helper methods for common plugin tasks shouldExecute(context) { // Default: always execute // Override for conditional execution return true; } logDebug(context, message, extra) { context.log('debug', `[${this.metadata.name}] ${message}`, extra); } logInfo(context, message, extra) { context.log('info', `[${this.metadata.name}] ${message}`, extra); } logWarn(context, message, extra) { context.log('warn', `[${this.metadata.name}] ${message}`, extra); } logError(context, message, extra) { context.log('error', `[${this.metadata.name}] ${message}`, extra); } // Validation helpers validateConfig(config) { // Override in subclass for config validation return true; } validateRequest(context) { // Override in subclass for request validation return true; } } exports.BasePlugin = BasePlugin; // Specialized base classes for common plugin types class PreProcessorPlugin extends BasePlugin { phase = 'pre'; async execute(context) { if (!this.shouldExecute(context)) { return context; } try { return await this.preProcess(context); } catch (error) { this.logError(context, 'Error in pre-processing', { error }); throw error; } } } exports.PreProcessorPlugin = PreProcessorPlugin; class PostProcessorPlugin extends BasePlugin { phase = 'post'; async execute(context) { if (!this.shouldExecute(context)) { return context; } try { return await this.postProcess(context); } catch (error) { this.logError(context, 'Error in post-processing', { error }); throw error; } } } exports.PostProcessorPlugin = PostProcessorPlugin; class MainProcessorPlugin extends BasePlugin { phase = 'main'; async execute(context) { if (!this.shouldExecute(context)) { return context; } try { return await this.process(context); } catch (error) { this.logError(context, 'Error in main processing', { error }); throw error; } } } exports.MainProcessorPlugin = MainProcessorPlugin; //# sourceMappingURL=plugin.js.map