From 2e00db57785870bce1fc364cf91c5421ede8b13c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 2 Mar 2025 01:11:18 +0100 Subject: [PATCH] Query work --- packages/extension-query/src/Query.ts | 39 +++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 packages/extension-query/src/Query.ts diff --git a/packages/extension-query/src/Query.ts b/packages/extension-query/src/Query.ts new file mode 100644 index 0000000..8098466 --- /dev/null +++ b/packages/extension-query/src/Query.ts @@ -0,0 +1,39 @@ +import { Effect, Fiber, Option, type Ref, type SubscriptionRef } from "effect" +import * as AsyncData from "@typed/async-data" + + +export interface QueryRunner { + readonly stateRef: SubscriptionRef.SubscriptionRef> + readonly fiberRef: SubscriptionRef.SubscriptionRef>> + + readonly interrupt: Effect.Effect + readonly fetch: Effect.Effect + readonly refetch: Effect.Effect +} + + +export class Query { + constructor( + private readonly stateRef: SubscriptionRef.SubscriptionRef>, + private readonly fiberRef: SubscriptionRef.SubscriptionRef>>, + ) {} + + private run(effect: Effect.Effect) { + + } + + // interrupt(): Effect.Effect { + // return this.fiberRef.pipe( + // Effect.flatMap(Option.match({ + // onSome: Fiber.interrupt, + // onNone: () => Effect.void, + // })) + // ) + // } + + + + fetch = Effect.gen(this, function*() { + yield* this.interrupt() + }) +}