Hyperlinkv0.8.0-beta.28

Stream

Stream.filterMapconsteffect/Stream.ts:4341
<A, B, X>(filter: Filter.Filter<NoInfer<A>, B, X>): <E, R>(
  self: Stream<A, E, R>
) => Stream<B, E, R>
<A, E, R, B, X>(
  self: Stream<A, E, R>,
  filter: Filter.Filter<A, B, X>
): Stream<B, E, R>

Filters and maps stream elements in one pass using a Filter.

When to use

Use to keep only stream elements accepted by a Filter and emit each filter success value.

Details

Result.succeed values are emitted and Result.fail values are skipped.

Source effect/Stream.ts:434115 lines
export const filterMap: {
  <A, B, X>(
    filter: Filter.Filter<NoInfer<A>, B, X>
  ): <E, R>(self: Stream<A, E, R>) => Stream<B, E, R>
  <A, E, R, B, X>(
    self: Stream<A, E, R>,
    filter: Filter.Filter<A, B, X>
  ): Stream<B, E, R>
} = dual(
  2,
  <A, E, R, B, X>(
    self: Stream<A, E, R>,
    filter: Filter.Filter<A, B, X>
  ): Stream<B, E, R> => fromChannel(Channel.filterMapArray(toChannel(self), filter))
)