Skip to content

Commit 584db84

Browse files
committed
[alpha] Make reg-sub-raw alpha-compatible
1 parent b916c35 commit 584db84

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

src/re_frame/alpha.cljc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
[re-frame.loggers :as loggers]
1616
[re-frame.db :as db]
1717
[re-frame.interop :as interop]
18+
[re-frame.query.alpha :as q]
1819
[clojure.set :as set]
1920
[re-frame.std-interceptors :as std-interceptors :refer [db-handler->interceptor
2021
fx-handler->interceptor
@@ -751,7 +752,11 @@ A `flow` is a map, specifying one dataflow node. It has keys:
751752

752753
(defn ^:api-docs/hide reg-sub-raw
753754
[query-id handler-fn]
754-
(registrar/register-handler subs/kind query-id handler-fn))
755+
(registrar/register-handler
756+
subs/kind
757+
query-id
758+
(fn raw-subs-handler-fn [db q]
759+
(handler-fn db (subs.alpha/compat q)))))
755760

756761
(defn ^:api-docs/hide clear-subscription-cache!
757762
[]

src/re_frame/subs/alpha.cljc

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,21 @@
5454
(reset! rid (reagent-id r))
5555
r)))))
5656

57+
(defn compat [q]
58+
(if (map? q)
59+
(-> (or (:re-frame/query-v q) [(q/id q)])
60+
(vary-meta assoc
61+
:re-frame/lifecycle (q/lifecycle q)
62+
:re-frame/query-m q))
63+
q))
64+
5765
(defmethod reg :legacy-sub [_ id & args]
5866
(let [[inputs-fn computation-fn] (apply sugar id sub q/query? args)]
5967
(register-handler
6068
:sub
6169
id
6270
(fn subs-handler-fn [_ q]
63-
(let [q (if (map? q)
64-
(-> (or (::rf/query-v q) [(q/id q)])
65-
(vary-meta assoc
66-
::rf/lifecycle (q/lifecycle q)
67-
::rf/query-m q))
68-
q)
71+
(let [q (compat q)
6972
subscriptions (inputs-fn q nil)
7073
rid (atom nil)
7174
r (make-reaction

0 commit comments

Comments
 (0)