0.1.13 #18
@@ -37,11 +37,11 @@ export const make = <K extends readonly unknown[], A, FallbackA, E, HandledE, R>
|
||||
|
||||
const queryStateTag = QueryState.makeTag<A | FallbackA, Exclude<E, HandledE>>()
|
||||
|
||||
const run = (key: K) => Effect.all([
|
||||
queryStateTag,
|
||||
QueryClient,
|
||||
]).pipe(
|
||||
Effect.flatMap(([state, client]) => state.set(AsyncData.loading()).pipe(
|
||||
const run = (key: K) => Effect.Do.pipe(
|
||||
Effect.bind("state", () => queryStateTag),
|
||||
Effect.bind("client", () => QueryClient),
|
||||
|
||||
Effect.flatMap(({ state, client }) => state.set(AsyncData.loading()).pipe(
|
||||
Effect.andThen(mutation(key)),
|
||||
client.errorHandler.handle,
|
||||
Effect.matchCauseEffect({
|
||||
@@ -64,11 +64,11 @@ export const make = <K extends readonly unknown[], A, FallbackA, E, HandledE, R>
|
||||
value => Ref.set(globalStateRef, value),
|
||||
))
|
||||
|
||||
const forkMutate = (...key: K) => Effect.all([
|
||||
Ref.make(AsyncData.noData<A | FallbackA, Exclude<E, HandledE>>()),
|
||||
Queue.unbounded<AsyncData.AsyncData<A | FallbackA, Exclude<E, HandledE>>>(),
|
||||
]).pipe(
|
||||
Effect.flatMap(([stateRef, stateQueue]) =>
|
||||
const forkMutate = (...key: K) => Effect.Do.pipe(
|
||||
Effect.bind("stateRef", () => Ref.make(AsyncData.noData<A | FallbackA, Exclude<E, HandledE>>())),
|
||||
Effect.bind("stateQueue", () => Queue.unbounded<AsyncData.AsyncData<A | FallbackA, Exclude<E, HandledE>>>()),
|
||||
|
||||
Effect.flatMap(({ stateRef, stateQueue }) =>
|
||||
Effect.addFinalizer(() => Queue.shutdown(stateQueue)).pipe(
|
||||
Effect.andThen(run(key)),
|
||||
Effect.scoped,
|
||||
|
||||
@@ -80,13 +80,12 @@ export const make = <K extends readonly unknown[], A, FallbackA, E, HandledE, R>
|
||||
}))
|
||||
)
|
||||
|
||||
const run = Effect.all([
|
||||
queryStateTag,
|
||||
QueryClient,
|
||||
]).pipe(
|
||||
Effect.flatMap(([state, client]) => latestKeyRef.pipe(
|
||||
Effect.flatMap(identity),
|
||||
Effect.flatMap(key => query(key).pipe(
|
||||
const run = Effect.Do.pipe(
|
||||
Effect.bind("state", () => queryStateTag),
|
||||
Effect.bind("client", () => QueryClient),
|
||||
Effect.bind("latestKey", () => latestKeyRef.pipe(Effect.flatMap(identity))),
|
||||
|
||||
Effect.flatMap(({ state, client, latestKey }) => query(latestKey).pipe(
|
||||
client.errorHandler.handle,
|
||||
Effect.matchCauseEffect({
|
||||
onSuccess: v => Effect.succeed(AsyncData.success(v)).pipe(
|
||||
@@ -97,7 +96,6 @@ export const make = <K extends readonly unknown[], A, FallbackA, E, HandledE, R>
|
||||
),
|
||||
}),
|
||||
)),
|
||||
)),
|
||||
|
||||
Effect.provide(context),
|
||||
Effect.provide(QueryProgress.QueryProgress.Live),
|
||||
|
||||
Reference in New Issue
Block a user