MCPcopy
hub / github.com/Effect-TS/effect / Middleware

Class Middleware

packages/platform/src/HttpApiBuilder.ts:854–875  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

852 * @category middleware
853 */
854export class Middleware extends Context.Tag("@effect/platform/HttpApiBuilder/Middleware")<
855 Middleware,
856 {
857 readonly add: (middleware: HttpMiddleware.HttpMiddleware) => Effect.Effect<void>
858 readonly retrieve: Effect.Effect<HttpMiddleware.HttpMiddleware>
859 }
860>() {
861 /**
862 * @since 1.0.0
863 */
864 static readonly layer = Layer.sync(Middleware, () => {
865 let middleware: HttpMiddleware.HttpMiddleware = identity
866 return Middleware.of({
867 add: (f) =>
868 Effect.sync(() => {
869 const prev = middleware
870 middleware = (app) => f(prev(app))
871 }),
872 retrieve: Effect.sync(() => middleware)
873 })
874 })
875}
876
877/**
878 * @since 1.0.0

Callers

nothing calls this directly

Calls 4

syncMethod · 0.80
ofMethod · 0.65
fFunction · 0.50
prevFunction · 0.50

Tested by

no test coverage detected