effect
effect copied to clipboard
Add Stream.filterMapEffectOption combinator
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
@sincetag 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
🦋 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