File tree 3 files changed +6
-24
lines changed
3 files changed +6
-24
lines changed Original file line number Diff line number Diff line change 11
11
[re-pressed.core :as rp]
12
12
[reagent.dom :as ra.dom]
13
13
[renderer.attribute.core]
14
- [renderer.db]
15
14
[renderer.dialog.events]
16
15
[renderer.dialog.subs]
17
16
[renderer.document.events :as document.e]
Original file line number Diff line number Diff line change 1
1
(ns renderer.events
2
2
(:require
3
- [clojure.data :as data]
4
3
[malli.core :as ma]
5
4
[malli.error :as ma.error]
6
5
[re-frame.core :as rf]
13
12
[renderer.utils.local-storage :as local-storage]
14
13
[renderer.utils.pointer :as pointer]))
15
14
16
- (def last-state ( atom nil ))
15
+ (def valid? ( ma/validator db/app ))
17
16
18
17
(defn check-and-throw
19
18
" Throws an exception if `db` doesn't match the Spec"
20
- [event schema state]
21
- (when-not (ma/validate schema state)
19
+ [state event ]
20
+ (when-not (valid? state)
22
21
(js/console.error (str " Event: " (first event)))
23
- (throw (js/Error. (str " Spec check failed: " (-> (ma/explain schema state)
22
+ (throw (js/Error. (str " Spec check failed: " (-> (ma/explain db/app state)
24
23
ma.error/humanize
25
24
str))))))
26
25
27
- (defn check-schema [schema state event]
28
- (if @last-state
29
- (let [[prev current _] (data/diff @last-state state)
30
- changed-keys (set (concat (keys prev) (keys current)))]
31
- (reset! last-state state)
32
- (when (seq changed-keys)
33
- (let [schema* (->> schema
34
- rest
35
- (filter (fn [[schema-key & _]] (changed-keys schema-key)))
36
- (cons :map )
37
- vec)]
38
- (check-and-throw event schema* state))))
39
- (do
40
- (reset! last-state state)
41
- (check-and-throw event schema state))))
42
-
43
- (def schema-valdator (rf/after (partial check-schema db/app)))
26
+ (def schema-valdator (rf/after (partial check-and-throw)))
44
27
45
28
(rf/reg-global-interceptor schema-valdator)
46
29
Original file line number Diff line number Diff line change 36
36
#_(fn [& a] nil )
37
37
fetch-file!)
38
38
{:warning-as-error true
39
- :verbose config/debug?
39
+ :verbose false ; config/debug?
40
40
; ; :load-fn! (fn [z cb])
41
41
:no-pr-str-on-value true }))
42
42
cljs.js/*load-fn*
You can’t perform that action at this time.
0 commit comments