Fix forkEffectScoped
Some checks failed
Lint / lint (push) Failing after 1m40s

This commit is contained in:
Julien Valverdé
2025-10-29 15:07:49 +01:00
parent cb40ecff06
commit 626a9292d5

View File

@@ -178,7 +178,7 @@ export const makeProgressLayer = <A, E, P = never>(
export namespace forkEffectScoped { export namespace forkEffectScoped {
export type ContextInput<R, P> = (R extends Progress<infer X> export type InputContext<R, P> = (R extends Progress<infer X>
? [X] extends [P] ? [X] extends [P]
? R ? R
: never : never
@@ -188,15 +188,17 @@ export namespace forkEffectScoped {
export interface Options<P = never> { export interface Options<P = never> {
readonly initialProgress?: P readonly initialProgress?: P
} }
export type OutputContext<R> = Scope.Scope | Exclude<R, Progress<any> | Progress<never>>
} }
export const forkEffectScoped = <A, E, R, P = never>( export const forkEffectScoped = <A, E, R, P = never>(
effect: Effect.Effect<A, E, forkEffectScoped.ContextInput<R, NoInfer<P>>>, effect: Effect.Effect<A, E, forkEffectScoped.InputContext<R, NoInfer<P>>>,
options?: forkEffectScoped.Options<P>, options?: forkEffectScoped.Options<P>,
): Effect.Effect< ): Effect.Effect<
Queue.Dequeue<Result<A, E, P>>, Queue.Dequeue<Result<A, E, P>>,
never, never,
Scope.Scope | Exclude<R, Progress<any>> forkEffectScoped.OutputContext<R>
> => Effect.Do.pipe( > => Effect.Do.pipe(
Effect.bind("queue", () => Queue.unbounded<Result<A, E, P>>()), Effect.bind("queue", () => Queue.unbounded<Result<A, E, P>>()),
Effect.bind("ref", () => Ref.make<Result<A, E, P>>(initial())), Effect.bind("ref", () => Ref.make<Result<A, E, P>>(initial())),
@@ -218,12 +220,4 @@ export const forkEffectScoped = <A, E, R, P = never>(
) )
)), )),
Effect.map(({ queue }) => queue), Effect.map(({ queue }) => queue),
) ) as Effect.Effect<Queue.Queue<Result<A, E, P>>, never, Scope.Scope>
const t = forkEffectScoped(
Effect.gen(function*() {
yield* Progress()
}),
{ initialProgress: "juif" }
)