This commit is contained in:
@@ -225,9 +225,17 @@ extends Pipeable.Class() implements Query<K, A, E, R, P> {
|
|||||||
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 Effect.all([
|
||||||
Effect.andThen(client => client.cache),
|
Effect.succeed(this.makeCacheKey(key)),
|
||||||
Effect.map(HashMap.get(this.makeCacheKey(key))),
|
Effect.map(QueryClient.QueryClient, client => client.cache),
|
||||||
|
DateTime.now,
|
||||||
|
]).pipe(
|
||||||
|
Effect.andThen(([key, ref, now]) => ref.pipe(
|
||||||
|
Effect.andThen(HashMap.get(key)),
|
||||||
|
Effect.map(entry => new QueryClient.QueryClientCacheEntry(entry.result, entry.createdAt, now)),
|
||||||
|
Effect.tap(entry => SubscriptionRef.update(ref, HashMap.set(key, entry))),
|
||||||
|
)),
|
||||||
|
Effect.option,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,7 +246,7 @@ extends Pipeable.Class() implements Query<K, A, E, R, P> {
|
|||||||
return Effect.Do.pipe(
|
return Effect.Do.pipe(
|
||||||
Effect.bind("client", () => QueryClient.QueryClient),
|
Effect.bind("client", () => QueryClient.QueryClient),
|
||||||
Effect.bind("now", () => DateTime.now),
|
Effect.bind("now", () => DateTime.now),
|
||||||
Effect.let("entry", ({ now }) => new QueryClient.QueryClientCacheEntry(result, now)),
|
Effect.let("entry", ({ now }) => new QueryClient.QueryClientCacheEntry(result, now, now)),
|
||||||
Effect.tap(({ client, entry }) => SubscriptionRef.update(
|
Effect.tap(({ client, entry }) => SubscriptionRef.update(
|
||||||
client.cache,
|
client.cache,
|
||||||
HashMap.set(this.makeCacheKey(key), entry),
|
HashMap.set(this.makeCacheKey(key), entry),
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ implements Pipeable.Pipeable {
|
|||||||
constructor(
|
constructor(
|
||||||
readonly result: Result.Success<unknown>,
|
readonly result: Result.Success<unknown>,
|
||||||
readonly createdAt: DateTime.DateTime,
|
readonly createdAt: DateTime.DateTime,
|
||||||
|
readonly lastAccessedAt: DateTime.DateTime,
|
||||||
) {
|
) {
|
||||||
super()
|
super()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user