MCPcopy Index your code
hub / github.com/Effect-TS/effect / makeHandler

Function makeHandler

packages/platform-node/src/internal/httpServer.ts:136–158  ·  view source on GitHub ↗
(httpApp: App.Default<E, R>, middleware?: Middleware.HttpMiddleware)

Source from the content-addressed store, hash-verified

134 Exclude<Effect.Effect.Context<App>, ServerRequest.HttpServerRequest | Scope.Scope>
135 >
136} = <E, R>(httpApp: App.Default<E, R>, middleware?: Middleware.HttpMiddleware) => {
137 const handledApp = App.toHandled(httpApp, handleResponse, middleware)
138 return Effect.map(Effect.runtime<R>(), (runtime) => {
139 const runFork = Runtime.runFork(runtime)
140 return function handler(
141 nodeRequest: Http.IncomingMessage,
142 nodeResponse: Http.ServerResponse
143 ) {
144 const fiber = runFork(
145 Effect.provideService(
146 handledApp,
147 ServerRequest.HttpServerRequest,
148 new ServerRequestImpl(nodeRequest, nodeResponse)
149 )
150 )
151 nodeResponse.on("close", () => {
152 if (!nodeResponse.writableEnded) {
153 fiber.unsafeInterruptAsFork(Error.clientAbortFiberId)
154 }
155 })
156 }
157 })
158}
159
160/** @internal */
161export const makeUpgradeHandler = <R, E>(

Callers 1

makeFunction · 0.70

Calls 4

runtimeMethod · 0.80
mapMethod · 0.65
unsafeInterruptAsForkMethod · 0.65
runForkFunction · 0.50

Tested by

no test coverage detected