This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-09-20
Channels
- # announcements (5)
- # beginners (37)
- # calva (3)
- # cider (23)
- # clojure (98)
- # clojure-dev (16)
- # clojure-europe (5)
- # clojure-italy (4)
- # clojure-nl (5)
- # clojure-spec (7)
- # clojure-uk (52)
- # clojurescript (14)
- # cursive (15)
- # data-science (1)
- # datomic (20)
- # emacs (7)
- # flambo (2)
- # fulcro (10)
- # jackdaw (1)
- # jobs (3)
- # joker (2)
- # juxt (3)
- # keechma (3)
- # leiningen (8)
- # luminus (3)
- # music (1)
- # off-topic (83)
- # pathom (19)
- # re-frame (19)
- # reitit (4)
- # shadow-cljs (76)
- # spacemacs (95)
- # tools-deps (16)
Is there any common pattern to avoid cyclic dependencies when doing reverse routing? I was thinking of simply moving my route names into a new namespace. It just feels strange.
(ns proj.routes
(:require [proj.user :as user])
...
["/user" {:name ::user, :get {:handler user/user-handler}}
^^^ Uses proj.routes namespace
(ns proj.user
(:require [proj.routes :as routes])
...
(defn user-handler [request]
...
(r/match-by-name :routes/user)
^^^ Causes cyclic dep
So instead I was thinking of defining my routes like ["/user" {:name route-names/user}
Alternatively, I guess I don't have to use namespaced keys. I saw the reitit docs were using them and followed suit.
@jonjanisch you can use qualified keys without require, e.g. :proj.routes/user