effect-io-ai

Package: effect
Module: Stream

Stream.fromAsyncIterable

Creates a stream from an AsyncIterable.

Example (Creating a stream from an AsyncIterable)

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

class StreamError extends Data.TaggedError("StreamError")<{ readonly cause: unknown }> {}

const iterable = (async function*() {
  yield 1
  yield 2
  yield 3
})()

Effect.runPromise(Effect.gen(function*() {
  const stream = Stream.fromAsyncIterable(iterable, (cause) => new StreamError({ cause }))
  const values = yield* Stream.runCollect(stream)
  yield* Effect.sync(() => console.log(values))
}))

// [ 1, 2, 3 ]

Signature

declare const fromAsyncIterable: <A, E>(iterable: AsyncIterable<A>, onError: (error: unknown) => E) => Stream<A, E>

Source

Since v2.0.0