Skip to content

Commit

Permalink
Provide option not to alias namespaces in pods
Browse files Browse the repository at this point in the history
Now, the alias namespaces setting can be toggled with a checkbox. It's
off by default.

Alias-namespaces does a postwalk, which impacted performance even when
there was nothing to alias.

Now, this postwalk is only done when it makes sense.
  • Loading branch information
kimo-k committed Aug 8, 2023
1 parent 854b720 commit 7708913
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 8 deletions.
14 changes: 10 additions & 4 deletions src/day8/re_frame_10x/components/cljs_devtools.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -292,8 +292,11 @@
(defn simple-render
[data path & [{:keys [class sort?]}]]
(let [ns->alias @(rf/subscribe [::settings.subs/ns->alias])
data (cond->> data sort? tools.datafy/deep-sorted-map)
data (tools.datafy/alias-namespaces data ns->alias)]
alias? (and (seq ns->alias)
@(rf/subscribe [::settings.subs/alias-namespaces?]))
data (cond-> data
alias? (tools.datafy/alias-namespaces ns->alias)
sort? tools.datafy/deep-sorted-map)]
[rc/box
:size "1"
:class (str (jsonml-style) " " class)
Expand Down Expand Up @@ -391,8 +394,11 @@
(let [render-paths? (rf/subscribe [::app-db.subs/data-path-annotations?])
open-new-inspectors? @(rf/subscribe [::settings.subs/open-new-inspectors?])
ns->alias @(rf/subscribe [::settings.subs/ns->alias])
data (cond->> data sort? tools.datafy/deep-sorted-map)
data (tools.datafy/alias-namespaces data ns->alias)
alias? (and (seq ns->alias)
@(rf/subscribe [::settings.subs/alias-namespaces?]))
data (cond-> data
alias? (tools.datafy/alias-namespaces ns->alias)
sort? tools.datafy/deep-sorted-map)
input-field-path (second indexed-path) ;;path typed in input-box
shadow-root (-> (.getElementById js/document "--re-frame-10x--") ;;main shadow-root html component
.-shadowRoot
Expand Down
6 changes: 4 additions & 2 deletions src/day8/re_frame_10x/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,14 @@
(rf/inject-cofx ::local-storage/load {:key "ns-aliases" :or
(let [id (random-uuid)]
{id {:id id :ns-full "long-namespace" :ns-alias "ln"}})})
(rf/inject-cofx ::local-storage/load {:key "alias-namespaces?"})
rf/unwrap]
(fn [{:keys [panel-width-ratio show-panel selected-tab filter-items app-db-json-ml-expansions
external-window? external-window-dimensions show-epoch-traces? using-trace?
ignored-events low-level-trace filtered-view-trace retained-epochs app-db-paths
app-db-follows-events? ambiance syntax-color-scheme categories data-path-annotations?
show-event-history open-new-inspectors? handle-keys? key-bindings log-outputs log-pretty?
ns-aliases]}
ns-aliases alias-namespaces?]}
{:keys [debug?]}]
{:fx [(when using-trace?
[:dispatch [::settings.events/enable-tracing]])
Expand Down Expand Up @@ -89,7 +90,8 @@
[:dispatch [::settings.events/key-bindings key-bindings]]
[:dispatch [::settings.events/log-outputs log-outputs]]
[:dispatch [::settings.events/log-pretty? log-pretty?]]
[:dispatch [::settings.events/ns-aliases ns-aliases]]]}))
[:dispatch [::settings.events/ns-aliases ns-aliases]]
[:dispatch [::settings.events/alias-namespaces? alias-namespaces?]]]}))

;; Global

Expand Down
8 changes: 8 additions & 0 deletions src/day8/re_frame_10x/panels/settings/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,14 @@
rf/trim-v
(local-storage/save "ns-aliases")])

(rf/reg-event-db
::alias-namespaces?
[(rf/path [:settings :alias-namespaces?])
rf/trim-v
(local-storage/save "alias-namespaces?")]
(fn [_ [b]]
b))

(rf/reg-event-db
::ns-aliases
ns-aliases-interceptors
Expand Down
6 changes: 6 additions & 0 deletions src/day8/re_frame_10x/panels/settings/subs.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,12 @@
(fn [{:keys [log-pretty?]} _]
log-pretty?))

(rf/reg-sub
::alias-namespaces?
:<- [::root]
(fn [{:keys [alias-namespaces?]} _]
alias-namespaces?))

(rf/reg-sub
::ns-aliases
:<- [::root]
Expand Down
8 changes: 6 additions & 2 deletions src/day8/re_frame_10x/panels/settings/views.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -279,12 +279,16 @@
[[:div "How should the log (" [material/print] ") buttons behave?"]]
settings-box-131])
[rc/line]
(let [ambiance @(rf/subscribe [::settings.subs/ambiance])]
(let [ambiance @(rf/subscribe [::settings.subs/ambiance])
alias-namespaces? @(rf/subscribe [::settings.subs/alias-namespaces?])]
[settings-box
[[rc/h-box
:align :center
:gap horizontal-gap
:children [[rc/label :label "Alias namespaces:"]
:children [[rc/checkbox
:model alias-namespaces?
:label "Alias namespaces:"
:on-change #(rf/dispatch [::settings.events/alias-namespaces? %])]
[rc/button
:class (styles/button ambiance)
:style {:width styles/gs-81s}
Expand Down

0 comments on commit 7708913

Please sign in to comment.