package dispatch-js
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=021a95f89c503d546d90a7f212b369b117e45eedd91f32b5e5fcd33eea23d243
    
    
  md5=2c4a28aeb35038a3c928e0ff17d97a7c
    
    
  Description
ocaml-dispatch provides a basic mechanism for dispatching a request to a handler based on hierarchical path names conventionally found in URIs. It can be used both for dispatching requests in a server, as well as handing changes to hierarchical fragments in a client-side application.
This library provides a JavaScript interface for dispatching events based on DOM events.
Published: 29 Apr 2020
README
ocaml-dispatch
ocaml-dispatch provides a basic mechanism for dispatching a request to a handler based on hierarchical path names conventionally found in URIs. It can be used both for dispatching requests in a server, as well as handing changes to hierarchical fragments in a client-side application.
Installation
Install the library and its depenencies via OPAM:
opam install dispatchDevelopment
To install development versions of the library, pin the package from the root of the repository:
opam pin add .You can install the latest changes by commiting them to the local git repository and running:
opam upgrade dispatchFor building and running the tests during development, you will need to install the oUnit package and reconfigure the build process to enable tests:
opam install oUnit
dune runtestUsage
Dispatch is designed to work with whatever sort of handler you care to use, whether it's synchronous, Lwt-based, or Async-based. Here's a simple example of using the Dispatch.DSL module to setup routing for a "Hello, World!" server. The example assumes a Server module and request type, and that handlers should return strings that will be interpreted as the body of the response.
open Dispatch
let hello_handler keys rest request =
  let who = try List.assoc "who" keys with Not_found -> "World" in
  Printf.sprintf "Hello, %s!" who
;;
let handler request =
  let table = [
      "/"           , hello_handler
    ; "/hello/:who/", hello_handler
  ] in
  match DSL.dispatch table request.path with
  | Some handler -> handler request
  | None         -> "Not found!"
;;
let _ =
  Server.start handlerLicense
BSD3, see LICENSE file for its text.
Dependencies (4)
- 
  
    js_of_ocaml-lwt
  
  
    >= "3.5.0"
- 
  
    dispatch
  
  
    >= "0.4.0"
- 
  
    dune
  
  
    >= "1.0"
- 
  
    ocaml
  
  
    >= "4.03.0"
Dev Dependencies
None
Used by
None
Conflicts
None