MCPcopy Create free account
hub / github.com/Effect-TS/effect / makeMiddleware

Function makeMiddleware

packages/effect/src/unstable/http/HttpRouter.ts:939–952  ·  view source on GitHub ↗
(middleware: any, options?: {
  readonly global?: boolean | undefined
})

Source from the content-addressed store, hash-verified

937 }
938
939const makeMiddleware = (middleware: any, options?: {
940 readonly global?: boolean | undefined
941}) =>
942 options?.global ?
943 Layer.effectDiscard(Effect.gen(function*() {
944 const router = yield* HttpRouter
945 const fn = Effect.isEffect(middleware) ? yield* middleware : middleware
946 yield* router.addGlobalMiddleware(fn)
947 }))
948 : new MiddlewareImpl(
949 Effect.isEffect(middleware) ?
950 Layer.effectContext(Effect.map(middleware, (fn) => Context.makeUnsafe(new Map([[fnContextKey, fn]])))) :
951 Layer.succeedContext(Context.makeUnsafe(new Map([[fnContextKey, middleware]]))) as any
952 )
953
954let middlewareId = 0
955const fnContextKey = "effect/http/HttpRouter/MiddlewareFn"

Callers 1

middlewareFunction · 0.85

Calls 1

mapMethod · 0.45

Tested by

no test coverage detected