state.cljs 866 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. (ns electron.state
  2. (:require [clojure.core.async :as async]
  3. [electron.configs :as config]))
  4. (defonce persistent-dbs-chan (async/chan 1))
  5. (defonce state
  6. (atom {:graph/current nil
  7. :git/auto-commit-interval nil
  8. :config (config/get-config)}))
  9. (defn set-state!
  10. [path value]
  11. (if (vector? path)
  12. (swap! state assoc-in path value)
  13. (swap! state assoc path value)))
  14. (defn set-git-commit-interval!
  15. [v]
  16. (set-state! :git/auto-commit-interval v))
  17. (defn clear-git-commit-interval!
  18. []
  19. (when-let [interval (get @state :git/auto-commit-interval)]
  20. (js/clearInterval interval)))
  21. (defn get-git-commit-seconds
  22. []
  23. (get-in @state [:config :git/auto-commit-seconds] 60))
  24. (defn git-auto-commit-disabled?
  25. []
  26. (get-in @state [:config :git/disable-auto-commit?] true))
  27. (defn get-graph-path
  28. []
  29. (:graph/current @state))