1- import { HttpApp , HttpRouter , HttpServer } from '@effect/platform'
1+ import { HttpRouter , HttpServer , HttpServerRequest , HttpServerResponse } from '@effect/platform'
22import { Effect } from 'effect'
33import { auth } from './auth.js'
44import { formatApiError } from './errors.js'
@@ -15,7 +15,12 @@ import { ArtifactRouter } from './routes/artifacts.js'
1515import { NodeRouter } from './routes/nodes.js'
1616import { DocsRouter } from './routes/docs.js'
1717
18- const betterAuthApp = HttpApp . fromWebHandler ( ( request : Request ) => auth . handler ( request ) )
18+ const handleBetterAuth = Effect . gen ( function * ( ) {
19+ const req = yield * HttpServerRequest . HttpServerRequest
20+ const webReq = yield * HttpServerRequest . toWeb ( req )
21+ const webRes = yield * Effect . tryPromise ( ( ) => auth . handler ( webReq ) )
22+ return yield * Effect . succeed ( HttpServerResponse . fromWeb ( webRes ) )
23+ } )
1924
2025export const ApiRouter = HttpRouter . empty . pipe (
2126 HttpRouter . concat ( HealthRouter ) ,
@@ -26,7 +31,8 @@ export const ApiRouter = HttpRouter.empty.pipe(
2631 HttpRouter . concat ( ArtifactRouter ) ,
2732 HttpRouter . concat ( NodeRouter ) ,
2833 HttpRouter . concat ( DocsRouter ) ,
29- HttpRouter . mountApp ( '/api/auth' , betterAuthApp , { includePrefix : true } ) ,
34+ HttpRouter . all ( '/api/auth/*' , handleBetterAuth ) ,
35+ HttpRouter . all ( '/api/auth' , handleBetterAuth ) ,
3036 HttpRouter . catchAll ( ( error ) => Effect . succeed ( formatApiError ( error ) ) ) ,
3137)
3238
0 commit comments