effect-io-ai

Package: effect
Module: Stream

Stream.result

Lifts failures and successes into a Result, yielding a stream that cannot fail.

Details

The stream ends after the first failure, emitting a Result.fail value.

Example (Converting failures to results)

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

const program = Effect.gen(function*() {
  const results = yield* Stream.make(1, 2).pipe(
    Stream.concat(Stream.fail("boom")),
    Stream.result,
    Stream.map(Result.match({
      onFailure: (error) => `failure: ${error}`,
      onSuccess: (value) => `success: ${value}`
    })),
    Stream.runCollect
  )
  yield* Console.log(results)
})

Effect.runPromise(program)
// Output: [ "success: 1", "success: 2", "failure: boom" ]

Signature

declare const result: <A, E, R>(self: Stream<A, E, R>) => Stream<Result.Result<A, E>, never, R>

Source

Since v4.0.0