Skip to content

Debug goog define #787

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: cljfmt
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion examples/simple/shadow-cljs.edn
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,8 @@
:output-dir "resources/public/js"
:modules
{:client
{:init-fn simple.core/run}}}}}
{:init-fn simple.core/run}}
:dev
{:compiler-options
{:closure-defines
{re-frame.interop.debug-enabled? false}}}}}}
4 changes: 2 additions & 2 deletions src/re_frame/events.cljc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns re-frame.events
(:require [re-frame.db :refer [app-db]]
[re-frame.utils :refer [first-in-vector]]
[re-frame.interop :refer [empty-queue debug-enabled?]]
[re-frame.interop :refer [empty-queue is-debug-enabled?]]
[re-frame.registrar :refer [get-handler register-handler]]
[re-frame.loggers :refer [console]]
[re-frame.interceptor :as interceptor]
Expand All @@ -16,7 +16,7 @@
This function is 9/10 about giving good error messages."
[id interceptors]
(let [make-chain #(->> % flatten (remove nil?))]
(if-not debug-enabled?
(if-not is-debug-enabled?
(make-chain interceptors)
(do ;; do a whole lot of development time checks
(when-not (coll? interceptors)
Expand Down
4 changes: 2 additions & 2 deletions src/re_frame/interceptor.cljc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns re-frame.interceptor
(:require
[re-frame.loggers :refer [console]]
[re-frame.interop :refer [empty-queue debug-enabled?]]
[re-frame.interop :refer [empty-queue is-debug-enabled?]]
[re-frame.trace :as trace :include-macros true]
[clojure.set :as set]))

Expand All @@ -14,7 +14,7 @@

(defn ->interceptor
[& {:as m :keys [id before after]}]
(when debug-enabled?
(when is-debug-enabled?
(if-let [unknown-keys (seq (set/difference
(-> m keys set)
mandatory-interceptor-keys))]
Expand Down
2 changes: 1 addition & 1 deletion src/re_frame/interop.clj
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@

(def after-render next-tick)

(def debug-enabled? true)
(def is-debug-enabled? true)

(defn ratom [x]
(atom x))
Expand Down
4 changes: 3 additions & 1 deletion src/re_frame/interop.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@

(def after-render reagent.core/after-render)

(goog-define ^boolean debug-enabled? goog/DEBUG)

;; Make sure the Google Closure compiler sees this as a boolean constant,
;; otherwise Dead Code Elimination won't happen in `:advanced` builds.
;; Type hints have been liberally sprinkled.
;; https://developers.google.com/closure/compiler/docs/js-for-compiler
(def ^boolean debug-enabled? "@define {boolean}" ^boolean goog/DEBUG)
(def ^boolean is-debug-enabled? "@define {boolean}" debug-enabled?)

(defn ratom [x]
(reagent.core/atom x))
Expand Down
6 changes: 3 additions & 3 deletions src/re_frame/registrar.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"In many places, re-frame asks you to associate an `id` (keyword)
with a `handler` (function). This namespace contains the
central registry of such associations."
(:require [re-frame.interop :refer [debug-enabled?]]
(:require [re-frame.interop :refer [is-debug-enabled?]]
[re-frame.loggers :refer [console]]
[re-frame.settings :as settings]))

Expand All @@ -25,14 +25,14 @@

([kind id required?]
(let [handler (get-handler kind id)]
(when debug-enabled? ;; This is in a separate `when` so Closure DCE can run ...
(when is-debug-enabled? ;; This is in a separate `when` so Closure DCE can run ...
(when (and required? (nil? handler)) ;; ...otherwise you'd need to type-hint the `and` with a ^boolean for DCE.
(console :error "re-frame: no" (str kind) "handler registered for:" id)))
handler)))

(defn register-handler
[kind id handler-fn]
(when debug-enabled? ;; This is in a separate when so Closure DCE can run
(when is-debug-enabled? ;; This is in a separate when so Closure DCE can run
(when (and (not (settings/loaded?)) (get-handler kind id false))
(console :warn "re-frame: overwriting" (str kind) "handler for:" id))) ;; allow it, but warn. Happens on figwheel reloads.
(swap! kind->id->handler assoc-in [kind id] handler-fn)
Expand Down
2 changes: 1 addition & 1 deletion src/re_frame/settings.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
(if (= (:id interceptor)
(:id existing-interceptor))
(do
(when interop/debug-enabled?
(when interop/is-debug-enabled?
(when (not (loaded?))
(console :warn "re-frame: replacing duplicate global interceptor id: " (:id interceptor))))
(conj ret interceptor))
Expand Down
8 changes: 4 additions & 4 deletions src/re_frame/subs.cljc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns re-frame.subs
(:require
[re-frame.db :refer [app-db]]
[re-frame.interop :refer [add-on-dispose! debug-enabled? make-reaction ratom? deref? dispose! reagent-id reactive?]]
[re-frame.interop :refer [add-on-dispose! is-debug-enabled? make-reaction ratom? deref? dispose! reagent-id reactive?]]
[re-frame.loggers :refer [console]]
[re-frame.utils :refer [first-in-vector]]
[re-frame.registrar :refer [get-handler clear-handlers register-handler]]
Expand Down Expand Up @@ -48,7 +48,7 @@
query-cache)))))
;; cache this reaction, so it can be used to deduplicate other, later "=" subscriptions
(swap! query->reaction (fn [query-cache]
(when debug-enabled?
(when is-debug-enabled?
(when (contains? query-cache cache-key)
(console :warn "re-frame: Adding a new subscription to the cache while there is an existing subscription in the cache" cache-key)))
(assoc query-cache cache-key r)))
Expand All @@ -65,7 +65,7 @@

(defn warn-when-not-reactive
[]
(when (and debug-enabled? (not (reactive?)))
(when (and is-debug-enabled? (not (reactive?)))
(console :warn
"re-frame: Subscribe was called outside of a reactive context.\n"
"See: https://day8.github.io/re-frame/FAQs/UseASubscriptionInAJsEvent/\n"
Expand Down Expand Up @@ -105,7 +105,7 @@
(let [query-id (first-in-vector query)
handler-fn (get-handler kind query-id)]
(trace/merge-trace! {:tags {:cached? false}})
(when debug-enabled?
(when is-debug-enabled?
(when-let [not-reactive (not-empty (remove ratom? dynv))]
(console :warn "re-frame: your subscription's dynamic parameters that don't implement IReactiveAtom:" not-reactive)))
(if (nil? handler-fn)
Expand Down