The Requirements Channel: Dependency Injection
The third channel R represents requirements - services your Effect needs to run.
Instead of importing services directly, Effects declare what they need. This makes code testable and composable.
Create an Effect that needs a Database service.
- Use
Effect.Serviceto define services - Access services with
yield* ServiceNameinEffect.gen - The
Rchannel documents all required services
Loading code editor...