diff --git a/packages/effect-fc/src/Query.ts b/packages/effect-fc/src/Query.ts index 82b464d..5d29457 100644 --- a/packages/effect-fc/src/Query.ts +++ b/packages/effect-fc/src/Query.ts @@ -246,12 +246,16 @@ extends Pipeable.Class() implements Query { ) } + makeCacheKey(key: K): QueryClient.QueryClientCacheKey { + return new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect) + } + getCacheEntry( key: K ): Effect.Effect, never, QueryClient.QueryClient> { return QueryClient.QueryClient.pipe( Effect.andThen(client => client.cache), - Effect.map(HashMap.get(new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect))), + Effect.map(HashMap.get(this.makeCacheKey(key))), ) } @@ -265,7 +269,7 @@ extends Pipeable.Class() implements Query { Effect.let("entry", ({ now }) => new QueryClient.QueryClientCacheEntry(result, now)), Effect.tap(({ client, entry }) => SubscriptionRef.update( client.cache, - HashMap.set(new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect), entry), + HashMap.set(this.makeCacheKey(key), entry), )), Effect.map(({ entry }) => entry), ) @@ -276,7 +280,7 @@ extends Pipeable.Class() implements Query { QueryClient.QueryClient, client => SubscriptionRef.update( client.cache, - HashMap.remove(new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect)), + HashMap.remove(this.makeCacheKey(key)), ), ) }