Should make reloading AND aot work again

This commit is contained in:
2024-02-08 15:20:58 -08:00
parent 5b32518562
commit a5e6b0549d
20 changed files with 280 additions and 351 deletions

View File

@@ -18,38 +18,38 @@
(defn kebab [x]
(if (qualified-keyword? x)
(keyword (snake->kebab (namespace x)) (snake->kebab (name x)) )
(keyword (snake->kebab (namespace x)) (snake->kebab (name x)))
(keyword (snake->kebab (name x)))))
(defn kebab->snake [s]
(str/replace (str/replace s #"-" "_") #"\?$" "" ))
(str/replace (str/replace s #"-" "_") #"\?$" ""))
(defn snake [x]
(keyword (kebab->snake (name x))))
(defn ->graphql [m]
(walk/postwalk
(fn [node]
(cond
(fn [node]
(cond
(keyword? node)
(snake node)
(keyword? node)
(snake node)
:else
node))
m))
:else
node))
m))
(defn <-graphql [m]
(walk/postwalk
(fn [node]
(cond
(fn [node]
(cond
(keyword? node)
(kebab node)
(keyword? node)
(kebab node)
:else
node))
m))
:else
node))
m))
(defn is-admin? [id]
(= "admin" (:user/role id)))
@@ -141,7 +141,7 @@
not-empty
(str "*"))
query (as-> exacts e
(filter #(not (str/blank? %)) e)
(filter #(not (str/blank? %)) e)
(mapv #(str "+" %) e)
(conj e partial)
(str/join " " e))]
@@ -150,44 +150,43 @@
(defn trace-query [key f]
(fn trace [a b c]
(mu/with-context (merge
(:log-context a {})
{:query key
:mutation (boolean (= "mutation"
(namespace key)))
:user (:id a)})
(:log-context a {})
{:query key
:mutation (boolean (= "mutation"
(namespace key)))
:user (:id a)})
(mu/trace (keyword "graphql" (name key))
[]
(f a b c)))))
[]
(f a b c)))))
(defn attach-tracing-resolvers [schema m]
(attach-resolvers schema
(reduce
(fn [resolvers [resolver-key resolver-fn]]
(assoc resolvers
resolver-key (trace-query resolver-key resolver-fn))
)
{}
m)))
(fn [resolvers [resolver-key resolver-fn]]
(assoc resolvers
resolver-key (trace-query resolver-key resolver-fn)))
{}
m)))
(defn extract-client-ids [user-clients & possible-clients]
(let [coerce-client-ids (fn coerce-client-ids [x]
(cond (and (map? x)
(:db/id x))
[(:db/id x)]
(cond (and (map? x)
(:db/id x))
[(:db/id x)]
(nat-int? x)
[x]
(nat-int? x)
[x]
(and (vector? x)
(= :client/code (first x)))
[(entid (dc/db conn) x)]
(and (vector? x)
(= :client/code (first x)))
[(entid (dc/db conn) x)]
(sequential? x)
(mapcat coerce-client-ids x)
(sequential? x)
(mapcat coerce-client-ids x)
:else
[]))
:else
[]))
user-client-ids (set (mapcat coerce-client-ids user-clients))
extra-client-ids (set (mapcat coerce-client-ids possible-clients))]
(if (seq extra-client-ids)