effect-io-ai

Package: effect
Module: Stream

Stream.splitLines

Splits a stream of strings into lines, handling \n, \r, and \r\n delimiters across chunks.

Example (Splitting streamed text into lines)

import { Console, Effect, Stream } from "effect"

Effect.runPromise(Effect.gen(function* () {
  const lines = yield* Stream.runCollect(
    Stream.make("a\nb\r\n", "c\n").pipe(Stream.splitLines)
  )
  yield* Console.log(lines)
}))
// ["a", "b", "c"]

Signature

declare const splitLines: <E, R>(self: Stream<string, E, R>) => Stream<string, E, R>

Source

Since v2.0.0