( self: Effect.Effect<A, E, R>, driver: Schedule.ScheduleDriver<A1, E, R1>, orElse: (e: E, out: A1) => Effect.Effect<A2, E2, R2> )
| 2072 | |
| 2073 | /** @internal */ |
| 2074 | const retryOrElse_EffectLoop = <A, E, R, R1, A1, A2, E2, R2>( |
| 2075 | self: Effect.Effect<A, E, R>, |
| 2076 | driver: Schedule.ScheduleDriver<A1, E, R1>, |
| 2077 | orElse: (e: E, out: A1) => Effect.Effect<A2, E2, R2> |
| 2078 | ): Effect.Effect<A | A2, E2, R | R1 | R2> => { |
| 2079 | return core.catchAll( |
| 2080 | self, |
| 2081 | (e) => |
| 2082 | core.matchEffect(driver.next(e), { |
| 2083 | onFailure: () => |
| 2084 | pipe( |
| 2085 | driver.last, |
| 2086 | core.orDie, |
| 2087 | core.flatMap((out) => orElse(e, out)) |
| 2088 | ), |
| 2089 | onSuccess: () => retryOrElse_EffectLoop(self, driver, orElse) |
| 2090 | }) |
| 2091 | ) |
| 2092 | } |
| 2093 | |
| 2094 | /** @internal */ |
| 2095 | export const schedule_Effect = dual< |
no test coverage detected