ai-utils.js
Version:
Build AI applications, chatbots, and agents with JavaScript and TypeScript.
31 lines (30 loc) • 984 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseEventSourceReadableStream = void 0;
const eventsource_parser_1 = require("eventsource-parser");
async function* convertReadableStreamToAsyncIterable(reader) {
while (true) {
const result = await reader.read();
if (result.done) {
break;
}
yield result.value;
}
}
/**
* @internal
*/
async function parseEventSourceReadableStream({ stream, callback, }) {
try {
const parser = (0, eventsource_parser_1.createParser)(callback);
const decoder = new TextDecoder();
const iterable = convertReadableStreamToAsyncIterable(stream.getReader());
for await (const value of iterable) {
parser.feed(decoder.decode(value));
}
}
catch (error) {
console.error(error); // TODO introduce error handler param
}
}
exports.parseEventSourceReadableStream = parseEventSourceReadableStream;