diff --git a/packages/effect-fc/src/Query.ts b/packages/effect-fc/src/Query.ts index b72b954..fd869e0 100644 --- a/packages/effect-fc/src/Query.ts +++ b/packages/effect-fc/src/Query.ts @@ -1,4 +1,4 @@ -import { Console, Effect, Fiber, Option, Pipeable, Predicate, type Scope, Stream, type Subscribable, SubscriptionRef } from "effect" +import { Effect, Fiber, Option, Pipeable, Predicate, type Scope, Stream, type Subscribable, SubscriptionRef } from "effect" import * as Result from "./Result.js" @@ -34,17 +34,12 @@ extends Pipeable.Class() implements Query { super() } - readonly interrupt: Effect.Effect = Effect.gen(this, function*() { - yield* Console.log("interrupt called") - return Option.match(yield* this.fiber, { - onSome: fiber => Effect.gen(function*() { - yield* Console.log("interrupting...") - yield* Fiber.interrupt(fiber) - yield* Console.log("done interrupting.") - }), + get interrupt(): Effect.Effect { + return Effect.andThen(this.fiber, Option.match({ + onSome: Fiber.interrupt, onNone: () => Effect.void, - }) - }) + })) + } start(key: K): Effect.Effect< Subscribable.Subscribable>, @@ -52,9 +47,7 @@ extends Pipeable.Class() implements Query { Scope.Scope | R > { return Result.unsafeForkEffect( - Effect.onExit(this.f(key), exit => SubscriptionRef.set(this.fiber, Option.none()).pipe( - Effect.andThen(Console.log("exited", exit)) - )), + Effect.onExit(this.f(key), () => SubscriptionRef.set(this.fiber, Option.none())), { initialProgress: this.initialProgress }, ).pipe( Effect.tap(([, fiber]) => SubscriptionRef.set(this.fiber, Option.some(fiber))),