@@ -193,17 +193,18 @@ extends LensImpl<A, never, never, never, never> {
|
|||||||
|
|
||||||
get resolve(): Effect.Effect<LensImpl.Frame<A>, never, never> {
|
get resolve(): Effect.Effect<LensImpl.Frame<A>, never, never> {
|
||||||
return Effect.map(
|
return Effect.map(
|
||||||
this.ref.get,
|
Ref.get(this.ref.ref),
|
||||||
value => ({
|
value => ({
|
||||||
value,
|
value,
|
||||||
commit: next => Effect.flatMap(next, value => this.commit(value)),
|
commit: next => Effect.flatMap(
|
||||||
|
next,
|
||||||
|
value => Ref.set(this.ref.ref, value),
|
||||||
|
),
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
get changes() { return Stream.unwrap(Effect.map(this.ref.get, Stream.make)) }
|
get changes() { return Stream.unwrap(Effect.map(Ref.get(this.ref.ref), Stream.make)) }
|
||||||
get withLock() { return this.ref.withLock }
|
get withLock() { return this.ref.withLock }
|
||||||
|
|
||||||
commit(a: A) { return Ref.set(this.ref.ref, a) }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -239,19 +240,18 @@ extends LensImpl<A, never, never, never, never> {
|
|||||||
this.ref.get,
|
this.ref.get,
|
||||||
value => ({
|
value => ({
|
||||||
value,
|
value,
|
||||||
commit: next => Effect.flatMap(next, value => this.commit(value)),
|
commit: next => Effect.flatMap(
|
||||||
|
next,
|
||||||
|
value => Effect.zipLeft(
|
||||||
|
Ref.set(this.ref.ref, value),
|
||||||
|
PubSub.publish(this.ref.pubsub, value),
|
||||||
|
),
|
||||||
|
),
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
get changes() { return this.ref.changes }
|
get changes() { return this.ref.changes }
|
||||||
get withLock() { return this.ref.semaphore.withPermits(1) }
|
get withLock() { return this.ref.semaphore.withPermits(1) }
|
||||||
|
|
||||||
commit(a: A) {
|
|
||||||
return Effect.zipLeft(
|
|
||||||
Ref.set(this.ref.ref, a),
|
|
||||||
PubSub.publish(this.ref.pubsub, a),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user