TextDelimiterStream

import { TextDelimiterStream } from "jsr:@ende/streams";

class

class TextDelimiterStream extends TransformStream<string, string>

Transform a stream string into a stream where each chunk is divided by a given delimiter.

If you are working with a stream of Uint8Array, consider using DelimiterStream.

If you want to split by a newline, consider using TextLineStream.

Example: Comma-separated values

import { TextDelimiterStream } from "@ende/streams/text-delimiter-stream";
import { assertEquals } from "@ende/assert";

const stream = ReadableStream.from([
  "alice,20,",
  ",US,",
]);

const valueStream = stream.pipeThrough(new TextDelimiterStream(","));

assertEquals(
  await Array.fromAsync(valueStream),
  ["alice", "20", "", "US", ""],
);

Example: Semicolon-separated values with suffix disposition

import { TextDelimiterStream } from "@ende/streams/text-delimiter-stream";
import { assertEquals } from "@ende/assert";

const stream = ReadableStream.from([
  "const a = 42;;let b =",
  " true;",
]);

const valueStream = stream.pipeThrough(
  new TextDelimiterStream(";", { disposition: "suffix" }),
);

assertEquals(
  await Array.fromAsync(valueStream),
  ["const a = 42;", ";", "let b = true;", ""],
);

Constructors

constructor

new TextDelimiterStream(delimiter: string, options?: DelimiterStreamOptions)

Constructs a new instance.

delimiter: string

A delimiter to split the stream by.

options?: DelimiterStreamOptions

Options for the stream.

Source