Effect CommunityEC
Effect Community6mo ago
44 replies
Izak Filmalter

Type Error with `RpcServer.layerHttpRouter` and `SessionContext` in Middleware

I'm getting a strange type error using RpcServer.layerHttpRouter. It's not recognizing my HttpLayerRouter.middleware that's providing SessionContext to my endpoints.
Argument of type 'Layer<never, SqlError | ConfigError, SessionContext | HttpRouter>' is not assignable to parameter of type 'Layer<never, SqlError | ConfigError, HttpRouter | Request<"Requires", any> | Request<"GlobalRequires", any> | Request<"Error", any> | Request<...>>'.
  Type 'SessionContext | HttpRouter' is not assignable to type 'HttpRouter | Request<"Requires", any> | Request<"GlobalRequires", any> | Request<"Error", any> | Request<"GlobalError", any>'.
    Type 'SessionContext' is not assignable to type 'HttpRouter | Request<"Requires", any> | Request<"GlobalRequires", any> | Request<"Error", any> | Request<"GlobalError", any>'.ts(2345)

Strangely, when I const session = yield* SessionContext inside of an RpcEndpoint, I get the context.
Was this page helpful?