Integrating Better-Auth with Effect Typescript's HTTP server
I would like to add an endpoint all.('api/auth/') to my web server RPC to do an integration for better-auth, how can i return a response like expresss? i thing theres a way to get the request (req) but not the response (res)
thanks in advance!
```ts
import { toNodeHandler } from "better-auth/node";
import { createServer } from 'node:http'
import { toHttpApp } from '@effect/rpc-http/HttpRpcRouter'
import { betterAuth } from "better-auth";
const auth = betterAuth({})
const HttpLive = HttpRouter.empty.pipe(
HttpRouter.all('/api/auth/', T.gen(function* () {
const req = yield* HttpServerRequest.HttpServerRequest
probably doing something like this
const res = yield* HttpServerResponse.HttpServerResponse // this not exist
console.log(req.headers)
console.log(res.remoteAddress)
but probably need to wrap the response here
return toNodeHandler(auth)(req, res)
})),
HttpRouter.post('/rpc', toHttpApp(Router.Router)),
HttpServer.serve(HttpMiddleware.logger),
HttpServer.withLogAddress,
Layer.provide(NodeHttpServer.layer(createServer, { port: 3000 })),
Layer.provide(OpenTelemetry.layer({ serviceName: 'Auth Microservice' })),
)
Layer.launch(HttpLive).pipe(NodeRuntime.runMain)
```
thanks in advance!
```ts
import { toNodeHandler } from "better-auth/node";
import { createServer } from 'node:http'
import { toHttpApp } from '@effect/rpc-http/HttpRpcRouter'
import { betterAuth } from "better-auth";
const auth = betterAuth({})
const HttpLive = HttpRouter.empty.pipe(
HttpRouter.all('/api/auth/', T.gen(function* () {
const req = yield* HttpServerRequest.HttpServerRequest
probably doing something like this
const res = yield* HttpServerResponse.HttpServerResponse // this not exist
console.log(req.headers)
console.log(res.remoteAddress)
but probably need to wrap the response here
return toNodeHandler(auth)(req, res)
})),
HttpRouter.post('/rpc', toHttpApp(Router.Router)),
HttpServer.serve(HttpMiddleware.logger),
HttpServer.withLogAddress,
Layer.provide(NodeHttpServer.layer(createServer, { port: 3000 })),
Layer.provide(OpenTelemetry.layer({ serviceName: 'Auth Microservice' })),
)
Layer.launch(HttpLive).pipe(NodeRuntime.runMain)
```
