@reffuse/extension-query 0.1.4 #15
@@ -58,20 +58,23 @@ export const make = <EH, K extends readonly unknown[], A, E, HandledE, R>(
|
|||||||
Effect.provide(QueryProgress.QueryProgress.Live),
|
Effect.provide(QueryProgress.QueryProgress.Live),
|
||||||
)
|
)
|
||||||
|
|
||||||
const mutate = (...key: K) => run(key).pipe(
|
const mutate = (...key: K) => Effect.provide(run(key), QueryState.layer(
|
||||||
Effect.provide(QueryState.layer(
|
|
||||||
queryStateTag,
|
queryStateTag,
|
||||||
globalStateRef,
|
globalStateRef,
|
||||||
value => Ref.set(globalStateRef, value),
|
value => Ref.set(globalStateRef, value),
|
||||||
))
|
))
|
||||||
)
|
|
||||||
|
|
||||||
const forkMutate = (...key: K) => Effect.gen(function*() {
|
const forkMutate = (...key: K) => Effect.all([
|
||||||
const stateRef = yield* Ref.make(AsyncData.noData<A, Exclude<E, HandledE>>())
|
Ref.make(AsyncData.noData<A, Exclude<E, HandledE>>()),
|
||||||
const stateQueue = yield* Queue.unbounded<AsyncData.AsyncData<A, Exclude<E, HandledE>>>()
|
Queue.unbounded<AsyncData.AsyncData<A, Exclude<E, HandledE>>>(),
|
||||||
|
]).pipe(
|
||||||
|
Effect.flatMap(([stateRef, stateQueue]) =>
|
||||||
|
Effect.addFinalizer(() => Queue.shutdown(stateQueue)).pipe(
|
||||||
|
Effect.andThen(run(key)),
|
||||||
|
Effect.scoped,
|
||||||
|
Effect.forkDaemon,
|
||||||
|
|
||||||
const fiber = yield* Effect.forkDaemon(run(key).pipe(
|
Effect.map(fiber => [fiber, Stream.fromQueue(stateQueue)] as const),
|
||||||
Effect.tap(() => Queue.shutdown(stateQueue)),
|
|
||||||
|
|
||||||
Effect.provide(QueryState.layer(
|
Effect.provide(QueryState.layer(
|
||||||
queryStateTag,
|
queryStateTag,
|
||||||
@@ -81,11 +84,9 @@ export const make = <EH, K extends readonly unknown[], A, E, HandledE, R>(
|
|||||||
Effect.andThen(Ref.set(globalStateRef, value)),
|
Effect.andThen(Ref.set(globalStateRef, value)),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
))
|
)
|
||||||
|
)
|
||||||
return [fiber, Stream.fromQueue(stateQueue)] as const
|
)
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
context,
|
context,
|
||||||
|
|||||||
Reference in New Issue
Block a user