diff --git a/packages/effect/src/LayerMap.ts b/packages/effect/src/LayerMap.ts index eec7659f1bf..093712ac9bc 100644 --- a/packages/effect/src/LayerMap.ts +++ b/packages/effect/src/LayerMap.ts @@ -100,8 +100,12 @@ export interface LayerMap { * ) * ``` */ -export const make: , any, any>, E = never>( - tagOrAccessor: Context.Tag | Effect.Effect, +export const make: < + Accessor extends Context.Tag | Effect.Effect, + K, + L extends Layer.Layer, Scope.Scope>, any, any> +>( + tagOrAccessor: Accessor, lookup: (key: K) => L, options?: { readonly idleTimeToLive?: DurationInput | undefined @@ -109,18 +113,18 @@ export const make: , any, ) => Effect.Effect< LayerMap< K, - Exclude, - S, - E | (L extends Layer.Layer ? _E : never) + Exclude, Scope.Scope>, + Effect.Effect.Success, + Effect.Effect.Error | (L extends Layer.Layer ? _E : never) >, never, Scope.Scope | (L extends Layer.Layer ? _R : never) -> = Effect.fnUntraced(function*, any, any>, E = never>( - tagOrAccessor: Context.Tag | Effect.Effect, - lookup: (key: K) => L, +> = Effect.fnUntraced(function*( + tagOrAccessor: Effect.Effect, + lookup: (key: K) => Layer.Layer, EL, RL>, options?: { readonly idleTimeToLive?: DurationInput | undefined - } + } | undefined ) { const context = yield* Effect.context() @@ -160,12 +164,10 @@ export const make: , any, * @category Constructors */ export const fromRecord = < - I, - S, - const Layers extends Record, any, any>>, - E = never + Accessor extends Context.Tag | Effect.Effect, + const Layers extends Record, Scope.Scope>, any, any>> >( - tagOrAccessor: Context.Tag | Effect.Effect, + tagOrAccessor: Accessor, layers: Layers, options?: { readonly idleTimeToLive?: DurationInput | undefined @@ -173,9 +175,10 @@ export const fromRecord = < ): Effect.Effect< LayerMap< keyof Layers, - Exclude, - S, - E | (Layers[keyof Layers] extends Layer.Layer ? _E : never) + Exclude, Scope.Scope>, + Effect.Effect.Success, + | Effect.Effect.Error + | (Layers[keyof Layers] extends Layer.Layer ? _E : never) >, never, Scope.Scope | (Layers[keyof Layers] extends Layer.Layer ? _R : never)