UNPKG

@bash-dev/ai-chat-widget

Version:

Готовый к использованию AI чат-виджет для интеграции на любые сайты с поддержкой русского языка

60 lines (52 loc) 2.41 kB
/** * AI Chat Widget - Главный entry point для npm пакета * * Этот файл позволяет использовать виджет в разных окружениях: * - В браузере через script tag * - В Node.js проектах через import/require * - В современных bundlers (webpack, rollup, etc.) */ // Проверяем окружение if (typeof window !== 'undefined') { // Браузерное окружение - загружаем готовый скрипт const script = document.createElement('script'); script.src = require.resolve('./dist/ai-chat-widget.js'); document.head.appendChild(script); // Экспортируем после загрузки module.exports = function() { return window.AIChatWidget; }; } else { // Node.js окружение - читаем файл и создаем виртуальное DOM окружение const fs = require('fs'); const path = require('path'); // Читаем исходный код виджета const widgetCode = fs.readFileSync(path.join(__dirname, 'src/chat-widget.js'), 'utf8'); module.exports = { // Функция для инициализации в серверном окружении (для SSR) init: function(config) { console.warn('AI Chat Widget: Серверное окружение обнаружено. Виджет будет инициализирован на клиенте.'); return { config: config, isServerSide: true }; }, // Получить код для внедрения в HTML getScriptTag: function(config) { const configString = JSON.stringify(config).replace(/"/g, '&quot;'); return `<script src="https://unpkg.com/ai-chat-widget@latest/dist/ai-chat-widget.min.js" data-ai-chat data-config="${configString}"></script>`; }, // Получить прямую ссылку на CSS стили (если потребуется) getStyles: function() { return '/* Стили встроены в JavaScript */'; }, // Исходный код виджета для кастомизации source: widgetCode }; } // Для ES6 modules if (typeof module !== 'undefined' && module.exports) { module.exports.default = module.exports; }