Setelah transformasi didukung di Chrome, Safari, dan Firefox, transformasi akhirnya siap untuk digunakan.
Streams API memungkinkan Anda membagi resource yang ingin Anda terima, kirim, atau ubah menjadi potongan kecil, lalu memproses potongan ini sedikit demi sedikit. Baru-baru ini, Firefox 102 mulai mendukung TransformStream
, yang berarti TransformStream
kini akhirnya dapat digunakan di seluruh browser. Transform stream memungkinkan Anda melakukan pemipaan dari ReadableStream
ke WritableStream
, menjalankan transformasi pada bagian, atau menggunakan hasil yang ditransformasi secara langsung, seperti yang ditunjukkan dalam contoh berikut.
class UpperCaseTransformStream {
constructor() {
return new TransformStream({
transform(chunk, controller) {
controller.enqueue(chunk.toUpperCase());
},
});
}
}
button.addEventListener('click', async () => {
const response = await fetch('/script.js');
const readableStream = response.body
.pipeThrough(new TextDecoderStream())
.pipeThrough(new UpperCaseTransformStream());
const reader = readableStream.getReader();
pre.textContent = '';
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
pre.textContent += value;
}
});