This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-06-26
Channels
- # announcements (6)
- # beginners (328)
- # boot (2)
- # cider (72)
- # clara (6)
- # cljdoc (4)
- # cljsrn (5)
- # clojure (78)
- # clojure-europe (3)
- # clojure-italy (22)
- # clojure-nl (4)
- # clojure-spec (3)
- # clojure-uk (114)
- # clojurescript (22)
- # clojurex (54)
- # copenhagen-clojurians (1)
- # core-async (20)
- # cursive (8)
- # data-science (1)
- # datomic (22)
- # duct (11)
- # emacs (32)
- # events (1)
- # figwheel (2)
- # fulcro (18)
- # graalvm (53)
- # graphql (39)
- # luminus (6)
- # nrepl (6)
- # off-topic (53)
- # om (1)
- # re-frame (8)
- # reagent (19)
- # reitit (3)
- # shadow-cljs (28)
- # spacemacs (10)
- # sql (37)
- # tools-deps (33)
- # vim (9)
- # xtdb (6)
What is displace metadata in duct.core.merge/displace
?
From the readme: “We’ve also added merge metadata using merge/displace. This tells merge-configs not to override the port if it already exists in the configuraton.”
>In this example we've changed the requirement from :duct.server.http/jetty
to the more generic :duct.server/http
, which the latter derives from.
So, here :duct.server.http/jetty
is more specific than :duct.server/http
. Right?
>The merge-configs function is smart enough to merge :duct.server/http into a more specific derived key, if one exists.
What does this mean?
:duct.server.http/jetty
derives from :duct.server/http
https://github.com/duct-framework/server.http.jetty/blob/master/src/duct_hierarchy.edn
In the example, the module is merging :port
into your config under :duct.server/http
. However if your config contains a key that derives from :duct.server/http
(for example, :duct.server.http/jetty
), it will merge the port into that
(def config1 {:duct.server.http/jetty {}})
(def config2 {:duct.server/http {}})
(duct/merge-configs
config1
{:duct.server/http {:port 8080}})
;; => {:duct.server.http/jetty {:port 8080}}
(duct/merge-configs
config2
{:duct.server/http {:port 8080}})
;; => {:duct.server/http {:port 8080}}
@UG9U7TPDZ Thanks.