MCPcopy Index your code
hub / github.com/Effect-TS/effect / retryOrElse_EffectLoop

Function retryOrElse_EffectLoop

packages/effect/src/internal/schedule.ts:2074–2092  ·  view source on GitHub ↗
(
  self: Effect.Effect<A, E, R>,
  driver: Schedule.ScheduleDriver<A1, E, R1>,
  orElse: (e: E, out: A1) => Effect.Effect<A2, E2, R2>
)

Source from the content-addressed store, hash-verified

2072
2073/** @internal */
2074const 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 */
2095export const schedule_Effect = dual<

Callers 1

schedule.tsFile · 0.85

Calls 3

orElseFunction · 0.85
pipeFunction · 0.70
nextMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…