Hyperlinkv0.8.0-beta.28

Stream

Stream.filterMapEffectconsteffect/Stream.ts:4415
<A, B, X, EX, RX>(
  filter: Filter.FilterEffect<NoInfer<A>, B, X, EX, RX>
): <E, R>(self: Stream<A, E, R>) => Stream<B, E | EX, R | RX>
<A, E, R, B, X, EX, RX>(
  self: Stream<A, E, R>,
  filter: Filter.FilterEffect<A, B, X, EX, RX>
): Stream<B, E | EX, R | RX>

Filters and maps elements in one pass effectfully using a FilterEffect.

When to use

Use to apply effectful logic that can reject stream elements or emit transformed values before they continue downstream.

Details

Result.succeed values are emitted, Result.fail values are skipped, and effect failures fail the stream.

Source effect/Stream.ts:441515 lines
export const filterMapEffect: {
  <A, B, X, EX, RX>(
    filter: Filter.FilterEffect<NoInfer<A>, B, X, EX, RX>
  ): <E, R>(self: Stream<A, E, R>) => Stream<B, E | EX, R | RX>
  <A, E, R, B, X, EX, RX>(
    self: Stream<A, E, R>,
    filter: Filter.FilterEffect<A, B, X, EX, RX>
  ): Stream<B, E | EX, R | RX>
} = dual(
  2,
  <A, E, R, B, X, EX, RX>(
    self: Stream<A, E, R>,
    filter: Filter.FilterEffect<A, B, X, EX, RX>
  ): Stream<B, E | EX, R | RX> => fromChannel(Channel.filterMapArrayEffect(toChannel(self), filter))
)