diff --git a/packages/effect-fc/src/Query.ts b/packages/effect-fc/src/Query.ts index 0095f42..f4b49a7 100644 --- a/packages/effect-fc/src/Query.ts +++ b/packages/effect-fc/src/Query.ts @@ -24,9 +24,9 @@ extends Pipeable.Pipeable { readonly run: Effect.Effect fetch(key: K): Effect.Effect> - fetchSubscribable(key: K): Effect.Effect>, never, Scope.Scope> + fetchSubscribable(key: K): Effect.Effect>> readonly refresh: Effect.Effect, Cause.NoSuchElementException> - readonly refreshSubscribable: Effect.Effect>, Cause.NoSuchElementException, Scope.Scope> + readonly refreshSubscribable: Effect.Effect>, Cause.NoSuchElementException> readonly invalidateCache: Effect.Effect invalidateCacheEntry(key: K): Effect.Effect @@ -85,33 +85,25 @@ extends Pipeable.Class() implements Query { return this.interrupt.pipe( Effect.andThen(SubscriptionRef.set(this.latestKey, Option.some(key))), Effect.andThen(this.latestFinalResult), - Effect.andThen(previous => Effect.provide( - this.startCached(key, Option.isSome(previous) - ? Result.willFetch(previous.value) as Result.Final - : Result.initial() - ), - this.context, + Effect.andThen(previous => this.startCached(key, Option.isSome(previous) + ? Result.willFetch(previous.value) as Result.Final + : Result.initial() )), Effect.andThen(sub => this.watch(sub)), + Effect.provide(this.context), ) } - fetchSubscribable(key: K): Effect.Effect< - Subscribable.Subscribable>, - never, - Scope.Scope - > { + fetchSubscribable(key: K): Effect.Effect>> { return this.interrupt.pipe( Effect.andThen(SubscriptionRef.set(this.latestKey, Option.some(key))), Effect.andThen(this.latestFinalResult), - Effect.andThen(previous => Effect.provide( - this.startCached(key, Option.isSome(previous) - ? Result.willFetch(previous.value) as Result.Final - : Result.initial() - ), - this.context, + Effect.andThen(previous => this.startCached(key, Option.isSome(previous) + ? Result.willFetch(previous.value) as Result.Final + : Result.initial() )), Effect.tap(sub => Effect.forkScoped(this.watch(sub))), + Effect.provide(this.context), ) } @@ -120,34 +112,29 @@ extends Pipeable.Class() implements Query { Effect.andThen(Effect.Do), Effect.bind("latestKey", () => Effect.andThen(this.latestKey, identity)), Effect.bind("latestFinalResult", () => this.latestFinalResult), - Effect.andThen(({ latestKey, latestFinalResult }) => Effect.provide( - this.startCached(latestKey, Option.isSome(latestFinalResult) - ? Result.willRefresh(latestFinalResult.value) as Result.Final - : Result.initial() - ), - this.context, + Effect.andThen(({ latestKey, latestFinalResult }) => this.startCached(latestKey, Option.isSome(latestFinalResult) + ? Result.willRefresh(latestFinalResult.value) as Result.Final + : Result.initial() )), Effect.andThen(sub => this.watch(sub)), + Effect.provide(this.context), ) } get refreshSubscribable(): Effect.Effect< Subscribable.Subscribable>, - Cause.NoSuchElementException, - Scope.Scope + Cause.NoSuchElementException > { return this.interrupt.pipe( Effect.andThen(Effect.Do), Effect.bind("latestKey", () => Effect.andThen(this.latestKey, identity)), Effect.bind("latestFinalResult", () => this.latestFinalResult), - Effect.andThen(({ latestKey, latestFinalResult }) => Effect.provide( - this.startCached(latestKey, Option.isSome(latestFinalResult) - ? Result.willRefresh(latestFinalResult.value) as Result.Final - : Result.initial() - ), - this.context, + Effect.andThen(({ latestKey, latestFinalResult }) => this.startCached(latestKey, Option.isSome(latestFinalResult) + ? Result.willRefresh(latestFinalResult.value) as Result.Final + : Result.initial() )), Effect.tap(sub => Effect.forkScoped(this.watch(sub))), + Effect.provide(this.context), ) }