UNPKG

docusaurus-openai-search

Version:

AI-powered search plugin for Docusaurus - extends Algolia search with intelligent keyword generation and RAG-based answers

91 lines (90 loc) 1.95 kB
/** * Simple logger utility for Docusaurus AI Search */ export class AISearchLogger { constructor(enabled) { this.prefix = '[AI Search]'; this.enabled = enabled; } /** * Log general information */ log(message, data) { if (!this.enabled) return; if (data !== undefined) { console.log(`${this.prefix} ${message}`, data); } else { console.log(`${this.prefix} ${message}`); } } /** * Log error with context */ logError(context, error) { if (!this.enabled) return; console.error(`${this.prefix} Error in ${context}:`, error); } /** * Log error (interface compatibility) */ error(...args) { if (!this.enabled) return; console.error(this.prefix, ...args); } /** * Log warning */ warn(...args) { if (!this.enabled) return; console.warn(this.prefix, ...args); } /** * Enable or disable logging */ setEnabled(enabled) { this.enabled = enabled; } /** * Get current logging state */ isEnabled() { return this.enabled; } /** * Reset logger state */ reset() { this.enabled = false; } } // Create a singleton logger instance let loggerInstance = null; export function createLogger(enabled = false) { loggerInstance = new AISearchLogger(enabled); return loggerInstance; } export function getLogger() { if (!loggerInstance) { loggerInstance = new AISearchLogger(false); } return loggerInstance; } /** * Reset the logger instance (for cleanup/testing) */ export function resetLogger() { if (loggerInstance) { loggerInstance = null; } } /** * Check if logger instance exists */ export function hasLoggerInstance() { return loggerInstance !== null; }