Skip to content

Commit 4c93aae

Browse files
committed
fix ContextProvider R
1 parent af5cd94 commit 4c93aae

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

.changeset/lucky-tools-mix.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@effect-app/infra": patch
3+
---
4+
5+
fix: ContextProvider R

packages/infra/src/api/routing/DynamicMiddleware.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ function makeRpcHandler<RequestContextMap extends Record<string, RPCContextMap.A
8080
return (cb: MakeRPCHandlerFactory<RequestContextMap, MiddlewareR>) => cb
8181
}
8282

83-
export type ContextProviderShape<ContextProviderA> = Effect<
83+
export type ContextProviderShape<ContextProviderA, ContextProviderR extends HttpRouter.HttpRouter.Provided> = Effect<
8484
Context.Context<ContextProviderA>,
8585
never,
86-
HttpRouter.HttpRouter.Provided
86+
ContextProviderR
8787
>
8888

8989
export interface MiddlewareMake<
@@ -95,14 +95,15 @@ export interface MiddlewareMake<
9595
//
9696
// ContextProvider is a service that builds additional context for each request.
9797
ContextProviderA, // what the context provider provides
98+
ContextProviderR extends HttpRouter.HttpRouter.Provided, // what the context provider requires
9899
MakeContextProviderE, // what the context provider construction can fail with
99100
MakeContextProviderR // what the context provider construction requires
100101
> {
101102
dependencies?: MiddlewareDependencies
102103
contextProvider:
103104
& Context.Tag<
104105
ContextProviderId,
105-
ContextProviderShape<ContextProviderA>
106+
ContextProviderShape<ContextProviderA, ContextProviderR>
106107
>
107108
& {
108109
Default: Layer.Layer<ContextProviderId, MakeContextProviderE, MakeContextProviderR>
@@ -179,12 +180,12 @@ export const mergeContextProviders = <
179180
// >
180181
// >(...deps: TDeps) => ContextProvider(mergeContextProviders(...deps))
181182

182-
export const ContextProvider = <A, E, R, EContext, Dependencies extends NonEmptyArray<Layer.Layer.Any>>(
183-
input: { effect: Effect<Effect<A, EContext, HttpRouter.HttpRouter.Provided>, E, R>; dependencies?: Dependencies }
183+
export const ContextProvider = <A, E, R, ContextE, ContextR, Dependencies extends NonEmptyArray<Layer.Layer.Any>>(
184+
input: { effect: Effect<Effect<A, ContextE, ContextR>, E, R>; dependencies?: Dependencies }
184185
) => {
185186
const ctx = Context.GenericTag<
186187
ContextProviderId,
187-
Effect<A, EContext, HttpRouter.HttpRouter.Provided>
188+
Effect<A, ContextE, ContextR>
188189
>(
189190
"ContextProvider"
190191
)
@@ -240,6 +241,7 @@ export const makeMiddleware =
240241
//
241242
// ContextProvider is a service that builds additional context for each request.
242243
ContextProviderA, // what the context provider provides
244+
ContextProviderR extends HttpRouter.HttpRouter.Provided, // what the context provider requires
243245
MakeContextProviderE, // what the context provider construction can fail with
244246
MakeContextProviderR // what the context provider construction requires
245247
>(
@@ -250,6 +252,7 @@ export const makeMiddleware =
250252
MakeMiddlewareR,
251253
MiddlewareDependencies,
252254
ContextProviderA,
255+
ContextProviderR,
253256
MakeContextProviderE,
254257
MakeContextProviderR
255258
>

0 commit comments

Comments
 (0)