added github pages support
This commit is contained in:
1 parent
b14ebdbf63
commit
6ed638a1cc
373 files changed
+185436
-2343
No files matched your search
@@ -0,0 +1,34 @@
|
||||
(ns devtools.prefs
|
||||
(:require-macros [devtools.prefs :refer [emit-external-config emit-env-config]])
|
||||
(:require [devtools.defaults :as defaults]))
|
||||
|
||||
; we use delay for DCE, see https://github.com/binaryage/cljs-devtools/issues/37
|
||||
(def default-config (delay @defaults/config))
|
||||
(def external-config (delay (emit-external-config)))
|
||||
(def env-config (delay (emit-env-config)))
|
||||
(def initial-config (delay (merge @default-config @external-config @env-config)))
|
||||
|
||||
(def ^:dynamic *current-config* (delay @initial-config))
|
||||
|
||||
; -- public api -------------------------------------------------------------------------------------------------------------
|
||||
|
||||
(defn set-prefs! [new-prefs]
|
||||
(set! *current-config* new-prefs))
|
||||
|
||||
(defn get-prefs []
|
||||
(when (delay? *current-config*)
|
||||
(set-prefs! @*current-config*))
|
||||
*current-config*)
|
||||
|
||||
(defn pref [key]
|
||||
(key (get-prefs)))
|
||||
|
||||
(defn set-pref! [key val]
|
||||
(set-prefs! (assoc (get-prefs) key val)))
|
||||
|
||||
(defn merge-prefs! [m]
|
||||
(set-prefs! (merge (get-prefs) m)))
|
||||
|
||||
(defn update-pref! [key f & args]
|
||||
(let [new-val (apply f (pref key) args)]
|
||||
(set-pref! key new-val)))
|
||||
Reference in new issue
Block a user