0.2.0 #5
@@ -568,62 +568,6 @@ export const mapError: {
|
|||||||
mapLock: Effect.mapError(f),
|
mapLock: Effect.mapError(f),
|
||||||
}))
|
}))
|
||||||
|
|
||||||
/**
|
|
||||||
* Recovers from read failures of a `Lens`.
|
|
||||||
*
|
|
||||||
* Applies to `get` and `changes` while leaving `modify` unchanged.
|
|
||||||
*/
|
|
||||||
export const catchAllRead: {
|
|
||||||
<A, ER, EW, RR, RW, E2, EW2, R2, RW2>(
|
|
||||||
self: Lens<A, ER, EW, RR, RW>,
|
|
||||||
f: (error: NoInfer<ER>) => Lens<A, E2, EW2, R2, RW2>,
|
|
||||||
): Lens<A, E2, EW | EW2, RR | R2, RW | RW2>
|
|
||||||
<A, ER, EW, RR, RW, E2, EW2, R2, RW2>(
|
|
||||||
f: (error: NoInfer<ER>) => Lens<A, E2, EW2, R2, RW2>,
|
|
||||||
): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, E2, EW | EW2, RR | R2, RW | RW2>
|
|
||||||
} = Function.dual(2, <A, ER, EW, RR, RW, E2, EW2, R2, RW2>(
|
|
||||||
self: Lens<A, ER, EW, RR, RW>,
|
|
||||||
f: (error: NoInfer<ER>) => Lens<A, E2, EW2, R2, RW2>,
|
|
||||||
): Lens<A, E2, EW | EW2, RR | R2, RW | RW2> => derive(self, {
|
|
||||||
resolve: parent => Effect.catchAll(
|
|
||||||
parent,
|
|
||||||
error => asLensImpl(f(error)).resolve as Effect.Effect<LensImpl.Frame<A, EW | EW2, RW | RW2>, E2, R2>,
|
|
||||||
),
|
|
||||||
mapStream: Stream.catchAll(error => f(error).changes),
|
|
||||||
mapLock: lock => lock as Effect.Effect<LensImpl.Lock, EW | EW2, RW | RW2>,
|
|
||||||
} as DerivedLensImpl.Source<A, A, E2, ER, EW | EW2, EW, RR | R2, RR, RW | RW2, RW>))
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Recovers from modify failures of a `Lens`.
|
|
||||||
*
|
|
||||||
* Applies to the commit/rebuild portion of `modifyEffect` while leaving reads unchanged.
|
|
||||||
*/
|
|
||||||
export const catchAllWrite: {
|
|
||||||
<A, ER, EW, RR, RW, E2, R2>(
|
|
||||||
self: Lens<A, ER, EW, RR, RW>,
|
|
||||||
f: (error: NoInfer<EW>) => Effect.Effect<void, E2, R2>,
|
|
||||||
): Lens<A, ER, E2, RR, RW | R2>
|
|
||||||
<A, ER, EW, RR, RW, E2, R2>(
|
|
||||||
f: (error: NoInfer<EW>) => Effect.Effect<void, E2, R2>,
|
|
||||||
): (self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, E2, RR, RW | R2>
|
|
||||||
} = Function.dual(2, <A, ER, EW, RR, RW, E2, R2>(
|
|
||||||
self: Lens<A, ER, EW, RR, RW>,
|
|
||||||
f: (error: NoInfer<EW>) => Effect.Effect<void, E2, R2>,
|
|
||||||
): Lens<A, ER, E2, RR, RW | R2> => derive(self, {
|
|
||||||
resolve: parent => Effect.map(parent, frame => ({
|
|
||||||
value: frame.value,
|
|
||||||
commit: next => Effect.flatMap(
|
|
||||||
next,
|
|
||||||
value => Effect.catchAll(frame.commit(Effect.succeed(value)), f),
|
|
||||||
),
|
|
||||||
})),
|
|
||||||
mapStream: identity,
|
|
||||||
mapLock: lock => Effect.catchAll(
|
|
||||||
lock,
|
|
||||||
error => Effect.as(f(error), identity),
|
|
||||||
),
|
|
||||||
}))
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs an effect when read failures occur.
|
* Runs an effect when read failures occur.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user