New parser

This commit is contained in:
Skylar Grant 2025-01-04 10:38:24 -05:00
parent 220be1485f
commit 1641d3b2d0

View File

@ -23,16 +23,41 @@ async function sendGen() {
async function readResponse(response) { async function readResponse(response) {
const reader = response.body.getReader(); const reader = response.body.getReader();
const decoder = new TextDecoder('utf-8'); const decoder = new TextDecoder('utf-8');
let done = false;
try { try {
while (!done) { // Recursive function to read the stream
const { value, done: readerDone } = await reader.read(); function read() {
done = readerDone; reader.read().then(({ value, done }) => {
const chunk = decoder.decode(value, { stream: true }); if (done) {
outputArea.innerHTML += chunk; console.log("Stream complete");
outputArea.scrollTop = outputArea.scrollHeight; return;
}
// Decode the stream chunk and split into lines
const chunk = decoder.decode(value, { stream: true });
const lines = chunk.split(/\r?\n/); // Split by newlines
// Process each line
for (const line of lines) {
if (line.trim()) { // Skip empty lines
try {
const json = JSON.parse(line); // Parse each line as JSON
if (json.response) {
textbox.value += json.response; // Append response text to the textbox
}
} catch (err) {
console.error("Failed to parse JSON:", err, line);
}
}
}
// Continue reading
read();
});
} }
// Start reading
read();
} catch (error) { } catch (error) {
outputArea.innerHTML = `<span class="text-red-500">Error: ${error.message}</span>`; outputArea.innerHTML = `<span class="text-red-500">Error: ${error.message}</span>`;
} }