This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-06-11
Channels
- # aleph (1)
- # aws (4)
- # aws-lambda (5)
- # beginners (85)
- # cider (39)
- # cljs-dev (3)
- # cljsrn (1)
- # clojars (1)
- # clojure (129)
- # clojure-italy (14)
- # clojure-nl (5)
- # clojure-nlp (1)
- # clojure-uk (61)
- # clojurescript (52)
- # cursive (3)
- # datomic (42)
- # duct (3)
- # emacs (9)
- # fulcro (60)
- # graphql (2)
- # juxt (2)
- # keechma (1)
- # leiningen (4)
- # midje (2)
- # off-topic (8)
- # onyx (3)
- # overtone (1)
- # re-frame (22)
- # reagent (51)
- # reitit (3)
- # remote-jobs (3)
- # ring (4)
- # ring-swagger (1)
- # rum (4)
- # shadow-cljs (14)
- # specter (28)
- # tools-deps (85)
- # vim (9)
it might be handy to add some helpers for matching routes, and extracting params, for example we've got these sort of things going for cljs at work:
(defn match-route [uri]
(->> (or (not-empty (string/replace uri #"^.*#" "")) "/")
(reitit/match-by-path router)))
(defrecord ReititRouter [routes]
api/Router
(data->url [_ [route-name path-params]] (str (:path (reitit/match-by-name routes route-name path-params))
(when-some [q (:query-string path-params)] (str "?" q))
(when-some [h (:hash path-params)] (str "#" h))))
(url->data [_ url] (let [[path+query fragment] (string/split url #"#" 2)
[path query] (string/split path+query #"\?" 2)]
(some-> (reitit/match-by-path routes path)
(assoc :query-string query :hash fragment)))))