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

Method constructor

packages/platform/src/internal/httpMultiplex.ts:22–47  ·  view source on GitHub ↗
(
    readonly apps: ReadonlyArray<
      readonly [
        predicate: (request: ServerRequest.HttpServerRequest) => Effect.Effect<boolean, E, R>,
        app: App.Default<E, R>
      ]
    >
  )

Source from the content-addressed store, hash-verified

20 readonly [TypeId]: Multiplex.TypeId
21
22 constructor(
23 readonly apps: ReadonlyArray<
24 readonly [
25 predicate: (request: ServerRequest.HttpServerRequest) => Effect.Effect<boolean, E, R>,
26 app: App.Default<E, R>
27 ]
28 >
29 ) {
30 super()
31 this[TypeId] = TypeId
32
33 let execute: (request: ServerRequest.HttpServerRequest) => App.Default<E | Error.RouteNotFound, R> = (request) =>
34 Effect.fail(new Error.RouteNotFound({ request }))
35
36 for (let i = apps.length - 1; i >= 0; i--) {
37 const [predicate, app] = apps[i]
38 const previous = execute
39 execute = (request) =>
40 Effect.flatMap(
41 predicate(request),
42 (match) => match ? app : previous(request)
43 )
44 }
45
46 this.execute = Effect.flatMap(ServerRequest.HttpServerRequest, execute)
47 }
48
49 execute: App.Default<E | Error.RouteNotFound, R>
50

Callers

nothing calls this directly

Calls 2

previousFunction · 0.85
predicateFunction · 0.50

Tested by

no test coverage detected