トランスフォームストリームは、書き込み可能なストリーム(書き込み側)と読み取り可能なストリーム(読み取り側)のペアです。書き込み側への書き込みは、読み取り側から読める新しいデータになります。
Workers が現在実装しているのは、アイデンティティトランスフォームストリーム(identity transform stream)だけです。これは、書き込み側に書き込まれたチャンクを、変更せずに読み取り側へ転送するトランスフォームストリームです。
let { readable, writable } = new TransformStream();-
TransformStream()TransformStream- 新しいアイデンティティトランスフォームストリームを返します。
readableReadableStreamReadableStreamのインスタンスです。
writableWritableStreamWritableStreamのインスタンスです。
Workers プラットフォームの現在の TransformStream 実装は、Streams Standard ↗ に完全には準拠していません。まもなく実装を変更して仕様に合わせる予定です。その準備として、現在の TransformStream クラスと同じ動作をする IdentityTransformStream クラスを導入しました。このストリームは、書き込み側に書き込まれたバイトデータのチャンク(TypedArray 形式)を、変更せずに読み取り側へ転送します。
IdentityTransformStream の読み取り側は、bring your own buffer(BYOB)読み取り ↗ に対応しています。
let { readable, writable } = new IdentityTransformStream();-
IdentityTransformStream()IdentityTransformStream- 新しいアイデンティティトランスフォームストリームを返します。
readableReadableStreamReadableStreamのインスタンスです。
writableWritableStreamWritableStreamのインスタンスです。
FixedLengthStream は、ストリームが通過させる合計バイト数を制限する IdentityTransformStream の特殊化です。主な利点は、FixedLengthStream で Response または Request を作ると、他のストリームのようにチャンクエンコーディングを使うのではなく、ストリームの固定長が Content-Length ヘッダー値として使われることです。書き込むバイト数が多すぎる、または少なすぎる場合はエラーになります。
let { readable, writable } = new FixedLengthStream(1000);-
FixedLengthStream(length)FixedLengthStream- 新しいアイデンティティトランスフォームストリームを返します。
lengthはnumberまたはbigintで、最大値は2^53 - 1です。
readableReadableStreamReadableStreamのインスタンスです。
writableWritableStreamWritableStreamのインスタンスです。