fcr-core
Version:
Core APIs for building online scenes
33 lines (30 loc) • 1.4 kB
JavaScript
import "core-js/modules/es.typed-array.to-reversed.js";
import "core-js/modules/es.typed-array.to-sorted.js";
import "core-js/modules/es.typed-array.with.js";
import "core-js/modules/esnext.array-buffer.detached.js";
import "core-js/modules/esnext.array-buffer.transfer.js";
import "core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js";
import "core-js/modules/esnext.json.parse.js";
import "core-js/modules/esnext.typed-array.filter-reject.js";
import "core-js/modules/esnext.typed-array.group-by.js";
import "core-js/modules/esnext.typed-array.to-spliced.js";
import "core-js/modules/esnext.typed-array.unique-by.js";
export 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;
}
}