Back

router (clj)

(source)

function

(router raw-routes) (router raw-routes opts)
Create a [[Router]] from raw route data and optionally an options map. Selects implementation based on route details. The following options are available: | key | description | ----------------|------------- | `:path` | Base-path for routes | `:routes` | Initial resolved routes (default `[]`) | `:data` | Initial route data (default `{}`) | `:spec` | clojure.spec definition for a route data, see `reitit.spec` on how to use this | `:syntax` | Path-parameter syntax as keyword or set of keywords (default #{:bracket :colon}) | `:expand` | Function of `arg opts => data` to expand route arg to route data (default `reitit.core/expand`) | `:coerce` | Function of `route opts => route` to coerce resolved route, can throw or return `nil` | `:compile` | Function of `route opts => result` to compile a route handler | `:validate` | Function of `routes opts => ()` to validate route (data) via side-effects | `:conflicts` | Function of `{route #{route}} => ()` to handle conflicting routes | `:exception` | Function of `Exception => Exception ` to handle creation time exceptions (default `reitit.exception/exception`) | `:meta-merge` | Function of `left right => merged` to merge route-data (default `meta-merge.core/meta-merge`) | `:update-paths` | Sequence of Vectors with elements `update-path` and `function`, used to preprocess route data | `:router` | Function of `routes opts => router` to override the actual router implementation

Examples