swinging-needle-meter/resources/public/js/compiled/out/devtools/prefs.cljs
2020-10-20 14:44:11 +01:00

24 lines
471 B
Clojure

(ns devtools.prefs
(:require [devtools.defaults :as defaults]))
(def ^:dynamic *prefs* defaults/prefs)
(defn get-prefs []
*prefs*)
(defn pref [key]
(key *prefs*))
(defn set-prefs! [new-prefs]
(set! *prefs* new-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)))