@@ -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
8989export 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