UNPKG

fcr-core

Version:

Core APIs for building online scenes

49 lines (45 loc) 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deCompressGzipToJson = deCompressGzipToJson; require("core-js/modules/es.error.cause.js"); require("core-js/modules/es.array-buffer.constructor.js"); require("core-js/modules/es.array-buffer.slice.js"); require("core-js/modules/es.typed-array.uint8-array.js"); require("core-js/modules/es.typed-array.at.js"); require("core-js/modules/es.typed-array.fill.js"); require("core-js/modules/es.typed-array.find-last.js"); require("core-js/modules/es.typed-array.find-last-index.js"); require("core-js/modules/es.typed-array.set.js"); require("core-js/modules/es.typed-array.sort.js"); 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; } }