@bash-dev/ai-chat-widget
Version:
Готовый к использованию AI чат-виджет для интеграции на любые сайты с поддержкой русского языка
60 lines (52 loc) • 2.41 kB
JavaScript
/**
* 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, '"');
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;
}