UNPKG

fcr-core

Version:

Core APIs for building online scenes

39 lines (35 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deCompressGzipToJson = deCompressGzipToJson; require("core-js/modules/es.typed-array.to-reversed.js"); require("core-js/modules/es.typed-array.to-sorted.js"); require("core-js/modules/es.typed-array.with.js"); require("core-js/modules/esnext.array-buffer.detached.js"); require("core-js/modules/esnext.array-buffer.transfer.js"); require("core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js"); require("core-js/modules/esnext.json.parse.js"); require("core-js/modules/esnext.typed-array.filter-reject.js"); require("core-js/modules/esnext.typed-array.group-by.js"); require("core-js/modules/esnext.typed-array.to-spliced.js"); require("core-js/modules/esnext.typed-array.unique-by.js"); async function deCompressGzipToJson(compressedData) { try { // 检查浏览器是否支持 Compression Streams API if (typeof DecompressionStream === 'undefined') { throw new Error('DecompressionStream is not supported in this browser'); } // 创建解压缩流 const decompressionStream = new DecompressionStream('gzip'); const decompressedStream = new Blob([new Uint8Array(compressedData)]).stream().pipeThrough(decompressionStream); // 获取解压缩后的文本 const response = new Response(decompressedStream); const text = await response.text(); // 解析为 JSON 对象 return JSON.parse(text); } catch (error) { console.error('Gzip decompression to JSON failed:', error); throw error; } }