コンテンツにスキップ

TransformStream

背景

トランスフォームストリームは、書き込み可能なストリーム(書き込み側)と読み取り可能なストリーム(読み取り側)のペアで構成されています。書き込み側への書き込みは、読み取り側から読み取るための新しいデータを利用可能にします。

Workersは現在、書き込み側に書き込まれたすべてのチャンクを変更なしに読み取り側に転送するアイデンティティトランスフォームストリームのみを実装しています。


コンストラクタ

let { readable, writable } = new TransformStream();
  • TransformStream() TransformStream

    • 新しいアイデンティティトランスフォームストリームを返します。

プロパティ

  • readable ReadableStream
    • ReadableStreamのインスタンス。
  • writable WritableStream
    • WritableStreamのインスタンス。

IdentityTransformStream

Workersプラットフォームにおける現在のTransformStreamの実装は、Streams Standardに準拠しておらず、仕様に準拠するように実装を変更する予定です。その準備として、現在のTransformStreamクラスと同じ動作を実装するIdentityTransformStreamクラスを導入しました。このタイプのストリームは、書き込み側に書き込まれたすべてのバイトデータのチャンク(TypedArrayの形式)を変更なしに読み取り側に転送します。

IdentityTransformStreamの読み取り側は、自分のバッファを持ち込む(BYOB)読み取りをサポートしています。

コンストラクタ

let { readable, writable } = new IdentityTransformStream();
  • IdentityTransformStream() IdentityTransformStream

    • 新しいアイデンティティトランスフォームストリームを返します。

プロパティ

  • readable ReadableStream
    • ReadableStreamのインスタンス。
  • writable WritableStream
    • WritableStreamのインスタンス。

FixedLengthStream

FixedLengthStreamは、ストリームが通過するバイトの総数を制限するIdentityTransformStreamの特殊化です。これは主に、FixedLengthStreamを使用してResponseまたはRequestを生成する際に、ストリームの固定長がContent-Lengthヘッダーの値として使用され、他のタイプのストリームを使用する際にチャンクエンコーディングが使用されないため、便利です。ストリームを通過するバイトが多すぎるか少なすぎる場合、エラーが発生します。

コンストラクタ

let { readable, writable } = new FixedLengthStream(1000);
  • FixedLengthStream(length) FixedLengthStream

    • 新しいアイデンティティトランスフォームストリームを返します。
    • lengthは、最大値が2^53 - 1numberまたはbigintである可能性があります。

プロパティ

  • readable ReadableStream
    • ReadableStreamのインスタンス。
  • writable WritableStream
    • WritableStreamのインスタンス。

関連リソース