def dispatch.application

bend-kit-camber@0.15.0.1 · camber.bend:903

import bend-kit-camber@0.15.0.1/camber.bend as Camber
import Base
import bend-kit-http@0.38.1.1/http.bend as Http
import bend-kit-router@0.2.0.0/router.bend as Router

903def dispatch.application(~A: Data, ~S: Type, ~K: Data, ~E: Data, ~H: Data,
904  ~before_hook: H -> S -> K -> Metadata -> IO(Step<S, E>),
905  ~after_hook: H -> S -> K -> Http.Res -> IO(S & Result<&2, &1, Error<E>, Http.Res>),
906  ~run: A -> S -> K -> Match<Policy<H>> -> Http.Req -> IO(S & Result<&2, &1, Error<E>, Http.Res>),
907  ~mapper: S -> K -> Error<E> -> IO(S & Result<&2, &1, Error<E>, Http.Res>),
908  app: Application<A, K, Policy<H>>, state: S, req: Http.Req
909) -> IO(Completion<S, H>):
910  Application{table, +config, root, groups} = app
911  Http.Req{+method, +path, +headers, body} = req
912  +meta = {Metadata{method, path, headers} : Metadata}
913  do IO<Completion<S, H>>:
914    completion : Completion<S, H> <- scopes(~S, ~K, ~E, ~H, ~before_hook, ~after_hook, ~mapper, [root], state, config, meta, Nil{}, body,
915      s => entered => b => resolved(~A, ~S, ~K, ~E, ~H, ~before_hook, ~after_hook, ~run, ~mapper,
916        Router.resolve(~Endpoint<A, Policy<H>>, table, method, path), groups, s, config, meta, entered, b))
917    finish(~S, ~K, ~E, ~H, ~mapper, config, completion)

Uses (19)

Used by (2)