From 3548ed57182cbf0569ad05f42bb88b381d3fd0af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 25 May 2025 19:17:53 +0200 Subject: [PATCH] Fix --- packages/extension-query/src/QueryRunner.ts | 50 +++++++++------------ 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/packages/extension-query/src/QueryRunner.ts b/packages/extension-query/src/QueryRunner.ts index a626aa9..f87e7ba 100644 --- a/packages/extension-query/src/QueryRunner.ts +++ b/packages/extension-query/src/QueryRunner.ts @@ -61,26 +61,22 @@ export const make = const queryStateTag = QueryState.makeTag>() - const interrupt = fiberRef.pipe( - Effect.flatMap(Option.match({ - onSome: fiber => Ref.set(fiberRef, Option.none()).pipe( - Effect.andThen(Fiber.interrupt(fiber)) - ), - onNone: () => Effect.void, - })) - ) + const interrupt = Effect.flatMap(fiberRef, Option.match({ + onSome: fiber => Ref.set(fiberRef, Option.none()).pipe( + Effect.andThen(Fiber.interrupt(fiber)) + ), + onNone: () => Effect.void, + })) - const forkInterrupt = fiberRef.pipe( - Effect.flatMap(Option.match({ - onSome: fiber => Ref.set(fiberRef, Option.none()).pipe( - Effect.andThen(Fiber.interrupt(fiber).pipe( - Effect.asVoid, - Effect.forkDaemon, - )) - ), - onNone: () => Effect.forkDaemon(Effect.void), - })) - ) + const forkInterrupt = Effect.flatMap(fiberRef, Option.match({ + onSome: fiber => Ref.set(fiberRef, Option.none()).pipe( + Effect.andThen(Fiber.interrupt(fiber).pipe( + Effect.asVoid, + Effect.forkDaemon, + )) + ), + onNone: () => Effect.forkDaemon(Effect.void), + })) const run = Effect.Do.pipe( Effect.bind("state", () => queryStateTag), @@ -129,15 +125,13 @@ export const make = )) ) - const setInitialRefreshState = queryStateTag.pipe( - Effect.flatMap(state => state.update(previous => { - if (AsyncData.isSuccess(previous) || AsyncData.isFailure(previous)) - return AsyncData.refreshing(previous) - if (AsyncData.isRefreshing(previous)) - return AsyncData.refreshing(previous.previous) - return AsyncData.loading() - })) - ) + const setInitialRefreshState = Effect.flatMap(queryStateTag, state => state.update(previous => { + if (AsyncData.isSuccess(previous) || AsyncData.isFailure(previous)) + return AsyncData.refreshing(previous) + if (AsyncData.isRefreshing(previous)) + return AsyncData.refreshing(previous.previous) + return AsyncData.loading() + })) const forkRefresh = Queue.unbounded>>().pipe( Effect.flatMap(stateQueue => interrupt.pipe(