INNER CODE UNIT · JavaScript
fetchGzipJson
oncologylab/fp-tools · src/fp_tools/resources/static_browser/app.js:121
async function fetchGzipJson(path) {
const response = await fetch(path);
if (!response.ok) throw new Error(`${path}: HTTP ${response.status}`);
if (!("DecompressionStream" in window))
throw new Error(
"This report needs a modern browser with gzip DecompressionStream support.",
);
const stream = response.body.pipeThrough(new DecompressionStream("gzip"));
return JSON.parse(await new Response(stream).text());
}
async function decodeEmbeddedPayload(payloadB64) {
if (!("DecompressionStream" in window))
throw new Error(
"This report needs a modern browser with gzip DecompressionStream support.",
);
const bytes = Uint8Array.from(atob(payloadB64), (character) =>
character.charCodeAt(0),