Compare commits

...
Author SHA1 Message Date
Parvesh Monu 9d1154d39e test 2024-09-11 15:02:16 +05:30
3 changed files with 10 additions and 11 deletions
@@ -28,14 +28,14 @@
chat members."
[chats-js]
(let [chat-key-fn (fn [k]
(case k
(case (name k)
"tokenGated" :token-gated?
"canPost" :can-post?
"can-view" :can-view?
"hideIfPermissionsNotMet" :hide-if-permissions-not-met?
(keyword k)))
chat-val-fn (fn [k v]
(if (= "members" k)
(if (= "members" (name k))
v
(transforms/js->clj v)))]
(transforms/<-js-map
@@ -57,7 +57,7 @@
(defn- rename-community-key
[k]
(case k
(case (name k)
"canRequestAccess" :can-request-access?
"canManageUsers" :can-manage-users?
"canDeleteMessageForEveryone" :can-delete-message-for-everyone?
@@ -86,7 +86,7 @@
c-js
{:key-fn rename-community-key
:val-fn (fn [k v]
(case k
(case (name k)
"members" v
"chats" (<-chats-rpc v)
(transforms/js->clj v)))})]
@@ -25,7 +25,7 @@
token-permissions-check id last-opened-at]
:as community} (data-store.communities/<-rpc community-js)
previous-last-opened-at (get-in db [:communities id :last-opened-at])]
(when (>= clock (get-in db [:communities id :clock]))
(when (and id (>= clock (get-in db [:communities id :clock])))
{:db (assoc-in db
[:communities id]
(assoc community :last-opened-at (max last-opened-at previous-last-opened-at)))
+5 -6
View File
@@ -16,9 +16,7 @@
(defn clj->json [data] (clj->pretty-json data 0))
(defn <-js-map
"Shallowly transforms JS Object keys/values with `key-fn`/`val-fn`.
Returns nil if `m` is not an instance of `js/Object`.
"Shallowly transforms JS Object keys/values with `key-fn`/`val-fn`..
Implementation taken from `js->clj`, but with the ability to customize how
keys and/or values are transformed in one loop.
@@ -33,15 +31,16 @@
([^js m]
(<-js-map m nil))
([^js m {:keys [key-fn val-fn]}]
(when (identical? (type m) js/Object)
(let [js-object? (identical? (type m) js/Object)
keys-fn (if js-object? js-keys keys)]
(persistent!
(reduce (fn [r k]
(let [v (oops/oget+ m k)
(let [v (if js-object? (oops/oget+ m k) (get m k))
new-key (if key-fn (key-fn k v) k)
new-val (if val-fn (val-fn k v) v)]
(assoc! r new-key new-val)))
(transient {})
(js-keys m))))))
(keys-fn m))))))
(defn js-stringify
[js-object spaces]