0.1.11 #14

Merged
Thilawyn merged 318 commits from next into master 2025-05-19 14:01:41 +02:00
Showing only changes of commit 606dd2c00f - Show all commits

View File

@@ -474,9 +474,11 @@ export abstract class ReffuseNamespace<R> {
this: ReffuseNamespace<R>, this: ReffuseNamespace<R>,
values: A, values: A,
): Stream.Stream<A> { ): Stream.Stream<A> {
const scope = this.useScope()
const { latest, pubsub, stream } = this.useMemo(() => Effect.Do.pipe( const { latest, pubsub, stream } = this.useMemo(() => Effect.Do.pipe(
Effect.bind("latest", () => Ref.make(values)), Effect.bind("latest", () => Ref.make(values)),
Effect.bind("pubsub", () => PubSub.unbounded<A>()), Effect.bind("pubsub", () => Effect.acquireRelease(PubSub.unbounded<A>(), PubSub.shutdown)),
Effect.let("stream", ({ latest, pubsub }) => Ref.get(latest).pipe( Effect.let("stream", ({ latest, pubsub }) => Ref.get(latest).pipe(
Effect.flatMap(a => Effect.map( Effect.flatMap(a => Effect.map(
Stream.fromPubSub(pubsub, { scoped: true }), Stream.fromPubSub(pubsub, { scoped: true }),
@@ -484,7 +486,8 @@ export abstract class ReffuseNamespace<R> {
)), )),
Stream.unwrapScoped, Stream.unwrapScoped,
)), )),
), []) Effect.provideService(Scope.Scope, scope),
), [scope])
this.useEffect(() => Effect.andThen( this.useEffect(() => Effect.andThen(
Ref.set(latest, values), Ref.set(latest, values),