UNPKG

chat-stream-ai

Version:

AI SDK for handling streaming response from conversational AI

35 lines (34 loc) 1.41 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var useChatStream = function (url) { var _a = (0, react_1.useState)([]), data = _a[0], setData = _a[1]; var _b = (0, react_1.useState)(''), error = _b[0], setError = _b[1]; var startStreaming = function () { var eventSource = new EventSource(url); eventSource.onmessage = function (event) { var newEvent = JSON.parse(event.data); if (newEvent.message === 'Stream completed') { eventSource.close(); } else { setData(function (prevData) { return __spreadArray(__spreadArray([], prevData, true), [newEvent.message], false); }); } }; eventSource.onerror = function (err) { setError('Failed to fetch data stream.'); eventSource.close(); }; }; return { data: data, error: error, startStreaming: startStreaming }; }; exports.default = useChatStream;