From 3b237c0588c71c690efd576138037124b36c7e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 24 Mar 2025 17:30:41 +0100 Subject: [PATCH] Query refactoring --- .../extension-query/src/internal/QueryRunner.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/extension-query/src/internal/QueryRunner.ts b/packages/extension-query/src/internal/QueryRunner.ts index 37198c6..bc659d3 100644 --- a/packages/extension-query/src/internal/QueryRunner.ts +++ b/packages/extension-query/src/internal/QueryRunner.ts @@ -106,10 +106,12 @@ export const make = ( const forkFetch = Queue.unbounded>>().pipe( Effect.flatMap(stateQueue => queryStateTag.pipe( Effect.flatMap(state => interrupt.pipe( - Effect.andThen(state.set(AsyncData.loading()).pipe( + Effect.andThen(Effect.addFinalizer(() => Ref.set(fiberRef, Option.none()).pipe( + Effect.andThen(Queue.shutdown(stateQueue)) + )).pipe( + Effect.andThen(state.set(AsyncData.loading())), Effect.andThen(run), - Effect.tap(() => Ref.set(fiberRef, Option.none())), - Effect.tap(() => Queue.shutdown(stateQueue)), + Effect.scoped, Effect.forkDaemon, )), @@ -139,10 +141,12 @@ export const make = ( const forkRefresh = Queue.unbounded>>().pipe( Effect.flatMap(stateQueue => interrupt.pipe( - Effect.andThen(setInitialRefreshState.pipe( + Effect.andThen(Effect.addFinalizer(() => Ref.set(fiberRef, Option.none()).pipe( + Effect.andThen(Queue.shutdown(stateQueue)) + )).pipe( + Effect.andThen(setInitialRefreshState), Effect.andThen(run), - Effect.tap(() => Ref.set(fiberRef, Option.none())), - Effect.tap(() => Queue.shutdown(stateQueue)), + Effect.scoped, Effect.forkDaemon, )),