( effect: Effect.Effect<A, E, R> )
| 1074 | * @since 2.0.0 |
| 1075 | */ |
| 1076 | export const fromEffect = <A, E, R>( |
| 1077 | effect: Effect.Effect<A, E, R> |
| 1078 | ): Channel<A, Pull.ExcludeDone<E>, void, unknown, unknown, unknown, R> => |
| 1079 | fromPull( |
| 1080 | Effect.sync(() => { |
| 1081 | let done = false |
| 1082 | return Effect.suspend((): Pull.Pull<A, E, void, R> => { |
| 1083 | if (done) return Cause.done() |
| 1084 | done = true |
| 1085 | return effect |
| 1086 | }) |
| 1087 | }) |
| 1088 | ) |
| 1089 | |
| 1090 | /** |
| 1091 | * Creates a channel that evaluates an effect and uses its successful value as |