diff --git a/packages/extension-query/src/QueryExtension.ts b/packages/extension-query/src/QueryExtension.ts index acd5cf9..79c0a89 100644 --- a/packages/extension-query/src/QueryExtension.ts +++ b/packages/extension-query/src/QueryExtension.ts @@ -1,5 +1,5 @@ import type * as AsyncData from "@typed/async-data" -import { type Cause, type Context, Effect, type Fiber, Layer, type Stream, type SubscriptionRef } from "effect" +import { type Cause, type Context, Effect, type Fiber, Layer, type Option, type Stream, type SubscriptionRef } from "effect" import * as React from "react" import { ReffuseExtension, type ReffuseHelpers } from "reffuse" import * as QueryRunner from "./QueryRunner.js" @@ -13,7 +13,7 @@ export interface UseQueryProps { } export interface UseQueryResult { - readonly keyStream: Stream.Stream + readonly latestKey: SubscriptionRef.SubscriptionRef> readonly state: SubscriptionRef.SubscriptionRef> readonly refresh: Effect.Effect> @@ -41,12 +41,12 @@ export const QueryExtension = ReffuseExtension.make(() => ({ [props.refreshOnWindowFocus, runner]) return React.useMemo(() => ({ - keyStream: props.key, + latestKey: runner.latestKeyRef, state: runner.stateRef, refresh: runner.forkRefresh, layer: tag => Layer.succeed(tag, { - keyStream: props.key, + latestKey: runner.latestKeyRef, state: runner.stateRef, refresh: runner.forkRefresh, }), diff --git a/packages/extension-query/src/QueryRunner.ts b/packages/extension-query/src/QueryRunner.ts index 812edbd..a403672 100644 --- a/packages/extension-query/src/QueryRunner.ts +++ b/packages/extension-query/src/QueryRunner.ts @@ -4,9 +4,9 @@ import { type Cause, Effect, Fiber, identity, Option, Ref, type Scope, Stream, S export interface QueryRunner { - readonly key: Stream.Stream readonly query: (key: K) => Effect.Effect + readonly latestKeyRef: SubscriptionRef.SubscriptionRef> readonly stateRef: SubscriptionRef.SubscriptionRef> readonly fiberRef: SubscriptionRef.SubscriptionRef>> @@ -128,9 +128,9 @@ export const make = ( ) return { - key, query, + latestKeyRef, stateRef, fiberRef, diff --git a/packages/extension-query/src/QueryService.ts b/packages/extension-query/src/QueryService.ts index 8025cb6..33fce17 100644 --- a/packages/extension-query/src/QueryService.ts +++ b/packages/extension-query/src/QueryService.ts @@ -1,9 +1,9 @@ import type * as AsyncData from "@typed/async-data" -import { type Cause, Effect, type Fiber, type Stream, type SubscriptionRef } from "effect" +import { type Cause, Effect, type Fiber, type Option, type SubscriptionRef } from "effect" export interface QueryService { - readonly keyStream: Stream.Stream + readonly latestKey: SubscriptionRef.SubscriptionRef> readonly state: SubscriptionRef.SubscriptionRef> readonly refresh: Effect.Effect> }