0.2.0 #5
@@ -55,7 +55,7 @@ extends Pipeable.Class() implements Lens<A, ER, EW, RR, RW> {
|
|||||||
abstract readonly changes: Stream.Stream<A, ER, RR>
|
abstract readonly changes: Stream.Stream<A, ER, RR>
|
||||||
abstract readonly lock: Effect.Effect<LensImpl.Lock, EW, RW>
|
abstract readonly lock: Effect.Effect<LensImpl.Lock, EW, RW>
|
||||||
|
|
||||||
get get() { return Effect.map(this.resolve, frame => frame.value) }
|
get get() { return Effect.map(this.resolve, resolved => resolved.value) }
|
||||||
|
|
||||||
modifyEffect<B, E1 = never, R1 = never>(
|
modifyEffect<B, E1 = never, R1 = never>(
|
||||||
f: (a: A) => Effect.Effect<readonly [B, A], E1, R1>,
|
f: (a: A) => Effect.Effect<readonly [B, A], E1, R1>,
|
||||||
@@ -64,9 +64,9 @@ extends Pipeable.Class() implements Lens<A, ER, EW, RR, RW> {
|
|||||||
this.lock,
|
this.lock,
|
||||||
lock => lock(Effect.flatMap(
|
lock => lock(Effect.flatMap(
|
||||||
this.resolve,
|
this.resolve,
|
||||||
frame => Effect.flatMap(
|
resolved => Effect.flatMap(
|
||||||
f(frame.value),
|
f(resolved.value),
|
||||||
([c, next]) => Effect.as(frame.commit(Effect.succeed(next)), c),
|
([c, next]) => Effect.as(resolved.commit(Effect.succeed(next)), c),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
@@ -133,9 +133,9 @@ extends LensImpl<A, ER | E1, EW | E1, RR | R1, RW | R1> {
|
|||||||
get resolve(): Effect.Effect<LensImpl.Resolved<A, EW | E1, RW | R1>, ER | E1, RR | R1> {
|
get resolve(): Effect.Effect<LensImpl.Resolved<A, EW | E1, RW | R1>, ER | E1, RR | R1> {
|
||||||
return Effect.map(
|
return Effect.map(
|
||||||
Effect.flatMap(this.effect, l => asLensImpl(l).resolve),
|
Effect.flatMap(this.effect, l => asLensImpl(l).resolve),
|
||||||
frame => ({
|
resolved => ({
|
||||||
value: frame.value,
|
value: resolved.value,
|
||||||
commit: next => frame.commit(next),
|
commit: next => resolved.commit(next),
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -357,9 +357,9 @@ export const map: {
|
|||||||
): Lens<B, ER, EW, RR, RW> => derive(self, {
|
): Lens<B, ER, EW, RR, RW> => derive(self, {
|
||||||
resolve: parent => Effect.map(
|
resolve: parent => Effect.map(
|
||||||
parent,
|
parent,
|
||||||
frame => ({
|
resolved => ({
|
||||||
value: get(frame.value),
|
value: get(resolved.value),
|
||||||
commit: next => frame.commit(Effect.map(next, b => set(frame.value, b))),
|
commit: next => resolved.commit(Effect.map(next, b => set(resolved.value, b))),
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
mapStream: Stream.map(get),
|
mapStream: Stream.map(get),
|
||||||
@@ -386,11 +386,11 @@ export const mapEffect: {
|
|||||||
): Lens<B, ER | EGet, EW | ESet, RR | RGet, RW | RSet> => derive(self, {
|
): Lens<B, ER | EGet, EW | ESet, RR | RGet, RW | RSet> => derive(self, {
|
||||||
resolve: parent => Effect.flatMap(
|
resolve: parent => Effect.flatMap(
|
||||||
parent,
|
parent,
|
||||||
frame => Effect.map(
|
resolved => Effect.map(
|
||||||
get(frame.value),
|
get(resolved.value),
|
||||||
value => ({
|
value => ({
|
||||||
value,
|
value,
|
||||||
commit: next => frame.commit(Effect.flatMap(next, b => set(frame.value, b))),
|
commit: next => resolved.commit(Effect.flatMap(next, b => set(resolved.value, b))),
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -525,11 +525,11 @@ export const mapErrorWrite: {
|
|||||||
self: Lens<A, ER, EW, RR, RW>,
|
self: Lens<A, ER, EW, RR, RW>,
|
||||||
f: (error: NoInfer<EW>) => E2,
|
f: (error: NoInfer<EW>) => E2,
|
||||||
): Lens<A, ER, E2, RR, RW> => derive(self, {
|
): Lens<A, ER, E2, RR, RW> => derive(self, {
|
||||||
resolve: parent => Effect.map(parent, frame => ({
|
resolve: parent => Effect.map(parent, resolved => ({
|
||||||
value: frame.value,
|
value: resolved.value,
|
||||||
commit: next => Effect.flatMap(
|
commit: next => Effect.flatMap(
|
||||||
next,
|
next,
|
||||||
value => Effect.mapError(frame.commit(Effect.succeed(value)), f),
|
value => Effect.mapError(resolved.commit(Effect.succeed(value)), f),
|
||||||
),
|
),
|
||||||
})),
|
})),
|
||||||
mapStream: identity,
|
mapStream: identity,
|
||||||
@@ -556,11 +556,11 @@ export const mapError: {
|
|||||||
): Lens<A, E2, E2, RR, RW> => derive(self, {
|
): Lens<A, E2, E2, RR, RW> => derive(self, {
|
||||||
resolve: parent => Effect.map(
|
resolve: parent => Effect.map(
|
||||||
Effect.mapError(parent, f),
|
Effect.mapError(parent, f),
|
||||||
frame => ({
|
resolved => ({
|
||||||
value: frame.value,
|
value: resolved.value,
|
||||||
commit: next => Effect.flatMap(
|
commit: next => Effect.flatMap(
|
||||||
next,
|
next,
|
||||||
value => Effect.mapError(frame.commit(Effect.succeed(value)), f),
|
value => Effect.mapError(resolved.commit(Effect.succeed(value)), f),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
@@ -608,11 +608,11 @@ export const tapErrorWrite: {
|
|||||||
self: Lens<A, ER, EW, RR, RW>,
|
self: Lens<A, ER, EW, RR, RW>,
|
||||||
f: (error: NoInfer<EW>) => Effect.Effect<unknown, E2, R2>,
|
f: (error: NoInfer<EW>) => Effect.Effect<unknown, E2, R2>,
|
||||||
): Lens<A, ER, EW | E2, RR, RW | R2> => derive(self, {
|
): Lens<A, ER, EW | E2, RR, RW | R2> => derive(self, {
|
||||||
resolve: parent => Effect.map(parent, frame => ({
|
resolve: parent => Effect.map(parent, resolved => ({
|
||||||
value: frame.value,
|
value: resolved.value,
|
||||||
commit: next => Effect.flatMap(
|
commit: next => Effect.flatMap(
|
||||||
next,
|
next,
|
||||||
value => Effect.tapError(frame.commit(Effect.succeed(value)), f),
|
value => Effect.tapError(resolved.commit(Effect.succeed(value)), f),
|
||||||
),
|
),
|
||||||
})),
|
})),
|
||||||
mapStream: identity,
|
mapStream: identity,
|
||||||
@@ -639,11 +639,11 @@ export const tapError: {
|
|||||||
): Lens<A, ER | E2, EW | E2, RR | R2, RW | R2> => derive(self, {
|
): Lens<A, ER | E2, EW | E2, RR | R2, RW | R2> => derive(self, {
|
||||||
resolve: parent => Effect.map(
|
resolve: parent => Effect.map(
|
||||||
Effect.tapError(parent, f),
|
Effect.tapError(parent, f),
|
||||||
frame => ({
|
resolved => ({
|
||||||
value: frame.value,
|
value: resolved.value,
|
||||||
commit: next => Effect.flatMap(
|
commit: next => Effect.flatMap(
|
||||||
next,
|
next,
|
||||||
value => Effect.tapError(frame.commit(Effect.succeed(value)), f),
|
value => Effect.tapError(resolved.commit(Effect.succeed(value)), f),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
@@ -669,9 +669,9 @@ export const provideContext: {
|
|||||||
): Lens<A, ER, EW, Exclude<RR, R2>, Exclude<RW, R2>> => derive(self, {
|
): Lens<A, ER, EW, Exclude<RR, R2>, Exclude<RW, R2>> => derive(self, {
|
||||||
resolve: parent => Effect.map(
|
resolve: parent => Effect.map(
|
||||||
Effect.provide(parent, context),
|
Effect.provide(parent, context),
|
||||||
frame => ({
|
resolved => ({
|
||||||
value: frame.value,
|
value: resolved.value,
|
||||||
commit: next => Effect.provide(frame.commit(next), context),
|
commit: next => Effect.provide(resolved.commit(next), context),
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
mapStream: Stream.provideSomeContext(context),
|
mapStream: Stream.provideSomeContext(context),
|
||||||
@@ -701,9 +701,9 @@ export const provideService: {
|
|||||||
): Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>> => derive(self, {
|
): Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>> => derive(self, {
|
||||||
resolve: parent => Effect.map(
|
resolve: parent => Effect.map(
|
||||||
Effect.provideService(parent, tag, service),
|
Effect.provideService(parent, tag, service),
|
||||||
frame => ({
|
resolved => ({
|
||||||
value: frame.value,
|
value: resolved.value,
|
||||||
commit: next => Effect.provideService(frame.commit(next), tag, service),
|
commit: next => Effect.provideService(resolved.commit(next), tag, service),
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
mapStream: Stream.provideService(tag, service),
|
mapStream: Stream.provideService(tag, service),
|
||||||
|
|||||||
Reference in New Issue
Block a user