@yoyo-org/progressive-json
Version:
Stream and render JSON data as it arrives - perfect for AI responses, large datasets, and real-time updates
20 lines (19 loc) • 574 B
JavaScript
import { assert } from "./utils/assert";
export async function fetchJson(url, processor) {
const response = await fetch(url);
assert(response.ok, `Failed to fetch from ${url}: ${response.statusText}`);
assert(response.body, "No response body received");
const reader = response.body.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) {
break;
}
processor.processChunk(value);
}
}
finally {
reader.releaseLock();
}
}