يكشف CompressionStream وDecompressionStream مدخلًا قابلًا للكتابة و
مخرجًا قابلًا للقراءة.
| الصيغة | الرمز |
|---|---|
| Gzip | gzip |
| deflate مغلَّف بـ Zlib | deflate |
| deflate خام | deflate-raw |
| Brotli | brotli |
| Zstandard | zstd |
Brotli وZstandard امتدادان من Elide لمجموعة صيغ المتصفحات القياسية.
ومطابقة الصيغة تميّز حالة الأحرف؛ والقيمة غير المعروفة ترمي TypeError.
async function collect(stream, input) {
const writer = stream.writable.getWriter();
const reader = stream.readable.getReader();
const chunks = [];
const reading = (async () => {
while (true) {
const { value, done } = await reader.read();
if (done) break;
chunks.push(value);
}
})();
await writer.write(input);
await writer.close();
await reading;
const size = chunks.reduce((total, chunk) => total + chunk.byteLength, 0);
const output = new Uint8Array(size);
let offset = 0;
for (const chunk of chunks) {
output.set(chunk, offset);
offset += chunk.byteLength;
}
return output;
}
const input = new TextEncoder().encode("hello");
const compressed = await collect(new CompressionStream("gzip"), input);
const restored = await collect(new DecompressionStream("gzip"), compressed);يجب أن تكون المدخلات قيم BufferSource. وتؤدي البيانات المضغوطة المشوّهة أو غير المكتملة
إلى رفض التحويل. ويطبّق فك الضغط أيضًا حدود أمان المضيف
على المخرجات المفرطة.
لواجهات دوال الاستدعاء والواجهات الموجّهة نحو Buffer، راجع node:zlib.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
CompressionStream | class | Full | readable, writable |
DecompressionStream | class | Full | readable, writable |