26 lines · 948 B · TypeScript
RawDownload
import { Effect, Layer } from "effect";import { HttpEffect } from "effect/unstable/http";import { AutumnApiApp } from "./api/autumn";import { NonProtectedApiApp, OrgApiApp } from "./api/layers";import { ProtectedApiApp } from "./api/protected";import {  ApiRequestHandler,  AutumnRequestHandlerService,  NonProtectedRequestHandlerService,  ProtectedRequestHandlerService,  OrgRequestHandlerService,} from "./api/router"; const ApiRequestHandlersLive = Layer.mergeAll(  Layer.succeed(OrgRequestHandlerService)({ app: OrgApiApp }),  Layer.succeed(NonProtectedRequestHandlerService)({ app: NonProtectedApiApp }),  Layer.succeed(AutumnRequestHandlerService)({ app: AutumnApiApp }),  Layer.succeed(ProtectedRequestHandlerService)({ app: ProtectedApiApp }),); export const handleApiRequest = Effect.runSync(  Effect.map(    Effect.provide(ApiRequestHandler, ApiRequestHandlersLive),    (app) => HttpEffect.toWebHandler(app),  ),);