0.2.2 #31
@@ -246,12 +246,16 @@ extends Pipeable.Class() implements Query<K, A, E, R, P> {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
makeCacheKey(key: K): QueryClient.QueryClientCacheKey {
|
||||||
|
return new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect<unknown, unknown, unknown>)
|
||||||
|
}
|
||||||
|
|
||||||
getCacheEntry(
|
getCacheEntry(
|
||||||
key: K
|
key: K
|
||||||
): Effect.Effect<Option.Option<QueryClient.QueryClientCacheEntry>, never, QueryClient.QueryClient> {
|
): Effect.Effect<Option.Option<QueryClient.QueryClientCacheEntry>, never, QueryClient.QueryClient> {
|
||||||
return QueryClient.QueryClient.pipe(
|
return QueryClient.QueryClient.pipe(
|
||||||
Effect.andThen(client => client.cache),
|
Effect.andThen(client => client.cache),
|
||||||
Effect.map(HashMap.get(new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect<unknown, unknown, unknown>))),
|
Effect.map(HashMap.get(this.makeCacheKey(key))),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,7 +269,7 @@ extends Pipeable.Class() implements Query<K, A, E, R, P> {
|
|||||||
Effect.let("entry", ({ now }) => new QueryClient.QueryClientCacheEntry(result, now)),
|
Effect.let("entry", ({ now }) => new QueryClient.QueryClientCacheEntry(result, now)),
|
||||||
Effect.tap(({ client, entry }) => SubscriptionRef.update(
|
Effect.tap(({ client, entry }) => SubscriptionRef.update(
|
||||||
client.cache,
|
client.cache,
|
||||||
HashMap.set(new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect<unknown, unknown, unknown>), entry),
|
HashMap.set(this.makeCacheKey(key), entry),
|
||||||
)),
|
)),
|
||||||
Effect.map(({ entry }) => entry),
|
Effect.map(({ entry }) => entry),
|
||||||
)
|
)
|
||||||
@@ -276,7 +280,7 @@ extends Pipeable.Class() implements Query<K, A, E, R, P> {
|
|||||||
QueryClient.QueryClient,
|
QueryClient.QueryClient,
|
||||||
client => SubscriptionRef.update(
|
client => SubscriptionRef.update(
|
||||||
client.cache,
|
client.cache,
|
||||||
HashMap.remove(new QueryClient.QueryClientCacheKey(key, this.f as (key: Query.AnyKey) => Effect.Effect<unknown, unknown, unknown>)),
|
HashMap.remove(this.makeCacheKey(key)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user