File tree 1 file changed +20
-4
lines changed
1 file changed +20
-4
lines changed Original file line number Diff line number Diff line change 17
17
[]
18
18
(:loaded? @store))
19
19
20
+ (defn -replace-global-interceptor
21
+ [global-interceptors interceptor]
22
+ (reduce
23
+ (fn [ret existing-interceptor]
24
+ (if (= (:id interceptor)
25
+ (:id existing-interceptor))
26
+ (do
27
+ (when interop/debug-enabled?
28
+ (when (not (loaded? ))
29
+ (console :warn " re-frame: replacing duplicate global interceptor id: " (:id interceptor))))
30
+ (conj ret interceptor))
31
+ (conj ret existing-interceptor)))
32
+ interop/empty-queue
33
+ global-interceptors))
34
+
20
35
(defn reg-global-interceptor
21
36
[{:keys [id] :as interceptor}]
22
37
(swap! store update :global-interceptors
23
38
(fn [global-interceptors]
24
39
(let [ids (map :id global-interceptors)]
25
- (when interop/debug-enabled?
26
- (when (and (not (loaded? )) (some #{id} ids))
27
- (console :warn " re-frame: duplicate global interceptor id: " id)))
28
- (conj global-interceptors interceptor)))))
40
+ (if (some #{id} ids)
41
+ ; ; If the id already exists we replace it in-place to maintain the ordering of
42
+ ; ; global interceptors esp during hot-code reloading in development.
43
+ (-replace-global-interceptor global-interceptors interceptor)
44
+ (conj global-interceptors interceptor))))))
29
45
30
46
(defn get-global-interceptors
31
47
[]
You can’t perform that action at this time.
0 commit comments