Skip to content

Commit 4006495

Browse files
authored
fix keyword renaming performance (#17291)
1 parent 72b8979 commit 4006495

File tree

3 files changed

+83
-63
lines changed

3 files changed

+83
-63
lines changed

src/status_im/signals/core.cljs

+46-44
Original file line numberDiff line numberDiff line change
@@ -96,52 +96,54 @@
9696
^js event-js (.-event data)
9797
type (.-type data)]
9898
(case type
99-
"node.login" (profile.login/login-node-signal cofx (transforms/js->clj event-js))
100-
"backup.performed" {:db (assoc-in db
101-
[:profile/profile :last-backup]
102-
(.-lastBackup event-js))}
103-
"envelope.sent" (transport.message/update-envelopes-status cofx
104-
(:ids
99+
"node.login" (profile.login/login-node-signal cofx (transforms/js->clj event-js))
100+
"backup.performed" {:db (assoc-in db
101+
[:profile/profile :last-backup]
102+
(.-lastBackup event-js))}
103+
"envelope.sent" (transport.message/update-envelopes-status cofx
104+
(:ids
105+
(js->clj event-js
106+
:keywordize-keys
107+
true))
108+
:sent)
109+
"envelope.expired" (transport.message/update-envelopes-status cofx
110+
(:ids
111+
(js->clj event-js
112+
:keywordize-keys
113+
true))
114+
:not-sent)
115+
"message.delivered" (let [{:keys [chatID messageID]} (js->clj event-js
116+
:keywordize-keys
117+
true)]
118+
(models.message/update-db-message-status cofx
119+
chatID
120+
messageID
121+
:delivered))
122+
"mailserver.changed" (mailserver/handle-mailserver-changed cofx (.-id event-js))
123+
"mailserver.available" (mailserver/handle-mailserver-available cofx (.-id event-js))
124+
"mailserver.not.working" (mailserver/handle-mailserver-not-working cofx)
125+
"discovery.summary" (summary cofx (js->clj event-js :keywordize-keys true))
126+
"mediaserver.started" {:db (assoc db :mediaserver/port (.-port event-js))}
127+
"wakuv2.peerstats" (wakuv2-peer-stats cofx (js->clj event-js :keywordize-keys true))
128+
"messages.new" (transport.message/sanitize-messages-and-process-response cofx
129+
event-js
130+
true)
131+
"wallet" (ethereum.subscriptions/new-wallet-event cofx
105132
(js->clj event-js
106133
:keywordize-keys
107134
true))
108-
:sent)
109-
"envelope.expired" (transport.message/update-envelopes-status cofx
110-
(:ids
111-
(js->clj event-js
112-
:keywordize-keys
113-
true))
114-
:not-sent)
115-
"message.delivered" (let [{:keys [chatID messageID]} (js->clj event-js
116-
:keywordize-keys
117-
true)]
118-
(models.message/update-db-message-status cofx
119-
chatID
120-
messageID
121-
:delivered))
122-
"mailserver.changed" (mailserver/handle-mailserver-changed cofx (.-id event-js))
123-
"mailserver.available" (mailserver/handle-mailserver-available cofx (.-id event-js))
124-
"mailserver.not.working" (mailserver/handle-mailserver-not-working cofx)
125-
"discovery.summary" (summary cofx (js->clj event-js :keywordize-keys true))
126-
"mediaserver.started" {:db (assoc db :mediaserver/port (.-port event-js))}
127-
"wakuv2.peerstats" (wakuv2-peer-stats cofx (js->clj event-js :keywordize-keys true))
128-
"messages.new" (transport.message/sanitize-messages-and-process-response cofx
129-
event-js
130-
true)
131-
"wallet" (ethereum.subscriptions/new-wallet-event cofx
132-
(js->clj event-js
133-
:keywordize-keys
134-
true))
135-
"local-notifications" (local-notifications/process cofx
136-
(js->clj event-js :keywordize-keys true))
137-
"community.found" (link-preview/cache-community-preview-data (js->clj event-js
138-
:keywordize-keys
139-
true))
140-
"status.updates.timedout" (visibility-status-updates/handle-visibility-status-updates
141-
cofx
142-
(js->clj event-js :keywordize-keys true))
143-
"localPairing" (handle-local-pairing-signals
144-
cofx
145-
(js->clj event-js :keywordize-keys true))
135+
"local-notifications" (local-notifications/process cofx
136+
(js->clj event-js :keywordize-keys true))
137+
"community.found" (link-preview/cache-community-preview-data (js->clj event-js
138+
:keywordize-keys
139+
true))
140+
"status.updates.timedout" (visibility-status-updates/handle-visibility-status-updates
141+
cofx
142+
(js->clj event-js :keywordize-keys true))
143+
"localPairing" (handle-local-pairing-signals
144+
cofx
145+
(js->clj event-js :keywordize-keys true))
146+
"curated.communities.update" (rf/dispatch [:fetched-contract-communities
147+
(js->clj event-js :keywordize-keys true)])
146148

147149
(log/debug "Event " type " not handled"))))

src/status_im2/contexts/communities/discover/events.cljs

+31-9
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,42 @@
11
(ns status-im2.contexts.communities.discover.events
2-
(:require [camel-snake-kebab.core :as csk]
3-
[clojure.string :as string]
4-
[taoensso.timbre :as log]
2+
(:require [taoensso.timbre :as log]
53
[utils.re-frame :as rf]))
64

5+
(def commmunity-keys-renamed
6+
{:requestedAccessAt :requested-access-at
7+
:fileSize :file-size
8+
:communityTokensMetadata :community-tokens-metadata
9+
:activeMembersCount :active-members-count
10+
:unknownCommunities :unknown-communities
11+
:canRequestAccess :can-request-access?
12+
:adminSettings :admin-settings
13+
:canManageUsers :can-manage-users?
14+
:categoryID :category-id
15+
:canPost :can-post?
16+
:isControlNode :is-control-node?
17+
:pinMessageAllMembersEnabled :pin-message-all-members-enabled
18+
:isMember :is-member?
19+
:canDeleteMessageForEveryone :can-delete-message-for-everyone?
20+
:tokenPermissions :token-permissions
21+
:muteTill :mute-till
22+
:contractCommunities :contract-communities
23+
:banList :ban-list
24+
:keyUid :key-uid
25+
:memberRole :member-role
26+
:introMessage :intro-message
27+
:contractFeaturedCommunities :contract-featured-communities
28+
:canJoin :can-join?
29+
:outroMessage :outro-message
30+
:resizeTarget :resize-target})
31+
732
(defn rename-contract-community-key
833
[k]
934
(let [s (name k)
10-
lower-cased (csk/->kebab-case-string s)
1135
starts-with-digit? (re-matches #"^\d.*" s)
12-
predicate? (some #(string/starts-with? lower-cased %)
13-
["can-" "is-"])]
36+
existing-rename (k commmunity-keys-renamed)]
1437
(cond starts-with-digit? s
15-
predicate? (keyword (str lower-cased "?"))
16-
:else (keyword lower-cased))))
38+
existing-rename existing-rename
39+
:else (keyword s))))
1740

1841
(defn rename-contract-community-keys
1942
[m]
@@ -43,4 +66,3 @@
4366
:params []
4467
:on-success #(rf/dispatch [:fetched-contract-communities %])
4568
:on-error #(log/error "failed to fetch contract communities" %)}]})
46-

src/status_im2/contexts/communities/discover/events_test.cljs

+6-10
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@
44

55
(deftest rename-contract-community-key-test
66
(are [i e] (= (events/rename-contract-community-key i) e)
7-
:foo :foo
8-
:fooBar :foo-bar
9-
:fooBarBaz :foo-bar-baz
10-
:isFoo :is-foo?
11-
:isFooBar :is-foo-bar?
12-
:canFoo :can-foo?
13-
:canFooBar :can-foo-bar?
14-
:0x025d27e58 "0x025d27e58"
15-
:093b4684-92f0 "093b4684-92f0"
16-
:3f9e77b8-97c7 "3f9e77b8-97c7"))
7+
:requestedAccessAt :requested-access-at
8+
:canDeleteMessageForEveryone :can-delete-message-for-everyone?
9+
:name :name
10+
:0x025d27e58 "0x025d27e58"
11+
:093b4684-92f0 "093b4684-92f0"
12+
:3f9e77b8-97c7 "3f9e77b8-97c7"))
1713

1814
(deftest rename-contract-community-keys-test
1915
(are [i e] (= (events/rename-contract-community-keys i) e)

0 commit comments

Comments
 (0)