Class ByteSliceStream

A transform stream that only transforms from the zero-indexed start and end bytes (both inclusive).

import { ByteSliceStream } from "@std/streams/byte-slice-stream";
import { assertEquals } from "@std/assert";

const stream = ReadableStream.from([
new Uint8Array([0, 1]),
new Uint8Array([2, 3, 4]),
]);
const slicedStream = stream.pipeThrough(new ByteSliceStream(1, 3));

assertEquals(
await Array.fromAsync(slicedStream),
[new Uint8Array([1]), new Uint8Array([2, 3])]
);
import { ByteSliceStream } from "@std/streams/byte-slice-stream";
import { assertEquals } from "@std/assert";

const response = await fetch("https://example.com");
const rangedStream = response.body!
.pipeThrough(new ByteSliceStream(3, 8));
const collected = await Array.fromAsync(rangedStream);
assertEquals(collected[0]?.length, 6);
Hierarchy
  • TransformStream<Uint8Array, Uint8Array>
    • ByteSliceStream

Constructors

Properties

Constructors

  • Constructs a new instance.

    Parameters

    • start: number = 0

      The zero-indexed byte index to start reading from.

    • end: number = Infinity

      The zero-indexed byte index to stop reading at. Inclusive.

    Returns ByteSliceStream

Properties

readable: ReadableStream<Uint8Array>
writable: WritableStream<Uint8Array>