fcr-core
Version:
Core APIs for building online scenes
49 lines (45 loc) • 2.09 kB
JavaScript
;
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;
}
}