effect icon indicating copy to clipboard operation
effect copied to clipboard

Add Stream.filterMapEffectOption combinator

Open lucas-barake opened this issue 11 months ago • 1 comments

Type

  • [x] Feature

Description

Added Stream.filterMapEffectOption combinator for effectful filtering and mapping in a single step. This utility combines filtering and mapping operations with effects into a single operation that returns an Option, improving ergonomics when you need to conditionally transform stream elements with effects.

Example usage:

Stream.make(1, 2, 3, 4).pipe(
  Stream.filterMapEffectOption((n) =>
    Effect.succeed(
      n % 2 === 0 ? Option.some(n * 2) : Option.none()
    )
  )
)
// Results in: Stream(4, 8)

Notes

  • I've left the @since tag version empty as I'm not sure which version to use. Would appreciate guidance on this.
  • This feature was requested in this Discord discussion

Related

  • Related Issue # N/A
  • Closes # N/A

lucas-barake avatar Jan 15 '25 17:01 lucas-barake

🦋 Changeset detected

Latest commit: f17d13c5f4518aa81021b2ebc0a2470e94804a79

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 32 packages
Name Type
effect Minor
@effect/cli Major
@effect/cluster Major
@effect/experimental Major
@effect/opentelemetry Major
@effect/platform-browser Major
@effect/platform-bun Major
@effect/platform-node-shared Major
@effect/platform-node Major
@effect/platform Major
@effect/printer-ansi Major
@effect/printer Major
@effect/rpc Major
@effect/sql-clickhouse Major
@effect/sql-d1 Major
@effect/sql-drizzle Major
@effect/sql-kysely Major
@effect/sql-libsql Major
@effect/sql-mssql Major
@effect/sql-mysql2 Major
@effect/sql-pg Major
@effect/sql-sqlite-bun Major
@effect/sql-sqlite-do Major
@effect/sql-sqlite-node Major
@effect/sql-sqlite-react-native Major
@effect/sql-sqlite-wasm Major
@effect/sql Major
@effect/typeclass Major
@effect/vitest Major
@effect/ai Major
@effect/ai-anthropic Major
@effect/ai-openai Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

changeset-bot[bot] avatar Jan 15 '25 17:01 changeset-bot[bot]