Hyperlinkv0.8.0-beta.28

Stream

Stream.runconsteffect/Stream.ts:10577
<A2, A, L, E2, R2>(sink: Sink.Sink<A2, A, L, E2, R2>): <E, R>(
  self: Stream<A, E, R>
) => Effect.Effect<A2, E2 | E, R | R2>
<A, E, R, L, A2, E2, R2>(
  self: Stream<A, E, R>,
  sink: Sink.Sink<A2, A, L, E2, R2>
): Effect.Effect<A2, E | E2, R | R2>

Runs a stream with a sink and returns the sink result.

Example (Running a stream with a sink)

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

const program = Stream.run(Stream.make(1, 2, 3), Sink.sum)

Effect.runPromise(Effect.flatMap(program, Console.log))
// 6
destructors
Source effect/Stream.ts:1057718 lines
export const run: {
  <A2, A, L, E2, R2>(
    sink: Sink.Sink<A2, A, L, E2, R2>
  ): <E, R>(self: Stream<A, E, R>) => Effect.Effect<A2, E2 | E, R | R2>
  <A, E, R, L, A2, E2, R2>(
    self: Stream<A, E, R>,
    sink: Sink.Sink<A2, A, L, E2, R2>
  ): Effect.Effect<A2, E | E2, R | R2>
} = dual(2, <A, E, R, L, A2, E2, R2>(
  self: Stream<A, E, R>,
  sink: Sink.Sink<A2, A, L, E2, R2>
): Effect.Effect<A2, E | E2, R | R2> =>
  Effect.scopedWith((scope) =>
    Channel.toPullScoped(self.channel, scope).pipe(
      Effect.flatMap((upstream) => sink.transform(upstream as any, scope)),
      Effect.map(([a]) => a)
    )
  ))
Referenced by 1 symbols