|
79 | 79 |
|
80 | 80 | #?(:cljs |
81 | 81 | (:require-macros |
82 | | - [cljs.core.async.macros :as asyncm :refer (go go-loop)]))) |
| 82 | + [cljs.core.async.macros :as asyncm :refer (go go-loop)] |
| 83 | + [taoensso.sente :as sente-macros :refer (elide-require)]))) |
83 | 84 |
|
84 | 85 | (if (vector? taoensso.encore/encore-version) |
85 | | - (enc/assert-min-encore-version [2 53 1]) |
86 | | - (enc/assert-min-encore-version 2.53)) |
| 86 | + (enc/assert-min-encore-version [2 67 1]) |
| 87 | + (enc/assert-min-encore-version 2.67)) |
87 | 88 |
|
88 | 89 | #?(:cljs (def ^:private node-target? (= *target* "nodejs"))) |
89 | 90 |
|
|
124 | 125 | (defn client-event-msg? [x] |
125 | 126 | (and |
126 | 127 | (map? x) |
127 | | - (enc/keys= x #{:ch-recv :send-fn :state :event :id :?data}) |
| 128 | + (enc/ks= #{:ch-recv :send-fn :state :event :id :?data} x) |
128 | 129 | (let [{:keys [ch-recv send-fn state event]} x] |
129 | 130 | (and |
130 | 131 | (enc/chan? ch-recv) |
|
135 | 136 | (defn server-event-msg? [x] |
136 | 137 | (and |
137 | 138 | (map? x) |
138 | | - (enc/keys= x #{:ch-recv :send-fn :connected-uids |
139 | | - :ring-req :client-id |
140 | | - :event :id :?data :?reply-fn :uid}) |
| 139 | + (enc/ks= #{:ch-recv :send-fn :connected-uids |
| 140 | + :ring-req :client-id |
| 141 | + :event :id :?data :?reply-fn :uid} x) |
141 | 142 | (let [{:keys [ch-recv send-fn connected-uids |
142 | 143 | ring-req client-id event ?reply-fn]} x] |
143 | 144 | (and |
|
768 | 769 | (defn- assert-send-args [x ?timeout-ms ?cb] |
769 | 770 | (assert-event x) |
770 | 771 | (assert (or (and (nil? ?timeout-ms) (nil? ?cb)) |
771 | | - (and (enc/nneg-int? ?timeout-ms))) |
| 772 | + (and (enc/nat-int? ?timeout-ms))) |
772 | 773 | (str "cb requires a timeout; timeout-ms should be a +ive integer: " ?timeout-ms)) |
773 | 774 | (assert (or (nil? ?cb) (ifn? ?cb) (enc/chan? ?cb)) |
774 | 775 | (str "cb should be nil, an ifn, or a channel: " (type ?cb))))) |
|
829 | 830 | cb-ch ?cb] |
830 | 831 | (fn [reply] |
831 | 832 | (put! cb-ch |
832 | | - [(keyword (str (enc/fq-name ev-id) ".cb")) |
| 833 | + [(keyword (str (enc/as-qname ev-id) ".cb")) |
833 | 834 | reply]))))))) |
834 | 835 |
|
835 | 836 | #?(:cljs |
|
877 | 878 |
|
878 | 879 | :handled))) |
879 | 880 |
|
880 | | -(defmacro ^:private elide-require |
881 | | - "Experimental. The presence of `js/require` calls can cause issues with |
882 | | - React Native, even if they never execute. Currently no other known |
883 | | - workarounds. Ref. https://github.com/ptaoussanis/sente/issues/247." |
884 | | - [& body] |
885 | | - (when-not (enc/get-sys-val "SENTE_ELIDE_JS_REQUIRE") |
886 | | - `(do ~@body))) |
| 881 | +#?(:clj |
| 882 | + (defmacro ^:private elide-require |
| 883 | + "Experimental. The presence of `js/require` calls can cause issues with |
| 884 | + React Native, even if they never execute. Currently no other known |
| 885 | + workarounds. Ref. https://github.com/ptaoussanis/sente/issues/247." |
| 886 | + [& body] |
| 887 | + (when-not (enc/get-sys-val "SENTE_ELIDE_JS_REQUIRE") |
| 888 | + `(do ~@body)))) |
887 | 889 |
|
888 | 890 | #?(:cljs |
889 | 891 | (def ^:private ?node-npm-websocket_ |
|
1463 | 1465 | stop? (= p ch-ctrl)] |
1464 | 1466 |
|
1465 | 1467 | (when-not stop? |
1466 | | - (let [{:as event-msg :keys [event]} v |
1467 | | - [_ ?error] |
1468 | | - (enc/catch-errors |
1469 | | - (when trace-evs? (tracef "Pre-handler event: %s" event)) |
1470 | | - (event-msg-handler |
1471 | | - (if server? |
1472 | | - (have! server-event-msg? event-msg) |
1473 | | - (have! client-event-msg? event-msg))))] |
1474 | | - |
1475 | | - (when-let [e ?error] |
1476 | | - (let [[_ ?error2] |
1477 | | - (enc/catch-errors |
1478 | | - (if-let [eh error-handler] |
1479 | | - (error-handler e event-msg) |
1480 | | - (errorf e "Chsk router `event-msg-handler` error: %s" event)))] |
1481 | | - (when-let [e2 ?error2] |
1482 | | - (errorf e2 "Chsk router `error-handler` error: %s" event)))) |
| 1468 | + (let [{:as event-msg :keys [event]} v] |
| 1469 | + |
| 1470 | + (enc/catching |
| 1471 | + (do |
| 1472 | + (when trace-evs? (tracef "Pre-handler event: %s" event)) |
| 1473 | + (event-msg-handler |
| 1474 | + (if server? |
| 1475 | + (have! server-event-msg? event-msg) |
| 1476 | + (have! client-event-msg? event-msg)))) |
| 1477 | + e1 |
| 1478 | + (enc/catching |
| 1479 | + (if-let [eh error-handler] |
| 1480 | + (error-handler e1 event-msg) |
| 1481 | + (errorf e1 "Chsk router `event-msg-handler` error: %s" event)) |
| 1482 | + e2 (errorf e2 "Chsk router `error-handler` error: %s" event))) |
1483 | 1483 |
|
1484 | 1484 | (recur))))) |
1485 | 1485 |
|
|
1525 | 1525 |
|
1526 | 1526 | ;;;; Deprecated |
1527 | 1527 |
|
1528 | | -#?(:clj |
1529 | | - (defn start-chsk-router-loop! |
1530 | | - "DEPRECATED: Please use `start-chsk-router!` instead" |
1531 | | - [event-msg-handler ch-recv] |
1532 | | - (start-server-chsk-router! ch-recv |
1533 | | - ;; Old handler form: (fn [ev-msg ch-recv]) |
1534 | | - (fn [ev-msg] (event-msg-handler ev-msg (:ch-recv ev-msg)))))) |
| 1528 | +(enc/deprecated |
| 1529 | + #?(:clj |
| 1530 | + (defn start-chsk-router-loop! |
| 1531 | + "DEPRECATED: Please use `start-chsk-router!` instead" |
| 1532 | + [event-msg-handler ch-recv] |
| 1533 | + (start-server-chsk-router! ch-recv |
| 1534 | + ;; Old handler form: (fn [ev-msg ch-recv]) |
| 1535 | + (fn [ev-msg] (event-msg-handler ev-msg (:ch-recv ev-msg)))))) |
1535 | 1536 |
|
1536 | | -#?(:cljs |
1537 | | - (defn start-chsk-router-loop! |
1538 | | - "DEPRECATED: Please use `start-chsk-router!` instead" |
1539 | | - [event-handler ch-recv] |
1540 | | - (start-client-chsk-router! ch-recv |
1541 | | - ;; Old handler form: (fn [ev ch-recv]) |
1542 | | - (fn [ev-msg] (event-handler (:event ev-msg) (:ch-recv ev-msg)))))) |
| 1537 | + #?(:cljs |
| 1538 | + (defn start-chsk-router-loop! |
| 1539 | + "DEPRECATED: Please use `start-chsk-router!` instead" |
| 1540 | + [event-handler ch-recv] |
| 1541 | + (start-client-chsk-router! ch-recv |
| 1542 | + ;; Old handler form: (fn [ev ch-recv]) |
| 1543 | + (fn [ev-msg] (event-handler (:event ev-msg) (:ch-recv ev-msg)))))) |
1543 | 1544 |
|
1544 | | -(def set-logging-level! "DEPRECATED. Please use `timbre/set-level!` instead" timbre/set-level!) |
| 1545 | + (def set-logging-level! "DEPRECATED. Please use `timbre/set-level!` instead" timbre/set-level!) |
1545 | 1546 |
|
1546 | | -#?(:cljs (def ajax-call "DEPRECATED: Please use `ajax-lite` instead" enc/ajax-lite)) |
1547 | | -#?(:cljs |
1548 | | - (def default-chsk-url-fn "DEPRECATED" |
1549 | | - (fn [path {:as location :keys [protocol host pathname]} websocket?] |
1550 | | - (let [protocol |
1551 | | - (if websocket? |
1552 | | - (if (= protocol "https:") "wss:" "ws:") |
1553 | | - protocol)] |
1554 | | - (str protocol "//" host (or path pathname)))))) |
| 1547 | + #?(:cljs (def ajax-call "DEPRECATED: Please use `ajax-lite` instead" enc/ajax-lite)) |
| 1548 | + #?(:cljs |
| 1549 | + (def default-chsk-url-fn "DEPRECATED" |
| 1550 | + (fn [path {:as location :keys [protocol host pathname]} websocket?] |
| 1551 | + (let [protocol |
| 1552 | + (if websocket? |
| 1553 | + (if (= protocol "https:") "wss:" "ws:") |
| 1554 | + protocol)] |
| 1555 | + (str protocol "//" host (or path pathname))))))) |
0 commit comments