refactor(outliner): connecting bewteen ui and outliner

This commit is contained in:
defclass
2021-03-29 21:41:48 +08:00
parent d4d4f9ee33
commit 633705fd03
15 changed files with 538 additions and 378 deletions

View File

@@ -320,6 +320,41 @@
transform-fn)]
(set-new-result! handler-key new-result))))))))))))
(defn refresh
[repo-url {:keys [key data files-db?] :as handler-opts
:or {files-db? false}}]
(let [handler-keys (get-handler-keys handler-opts)
get-conn (fn [] (if files-db?
(conn/get-files-conn repo-url)
(conn/get-conn repo-url false)))
db @(get-conn)]
(doseq [handler-key handler-keys]
(let [handler-key (vec (cons repo-url handler-key))]
(when-let [cache (get @query-state handler-key)]
(let [{:keys [query inputs transform-fn query-fn inputs-fn]} cache]
(when (or query query-fn)
(let [new-result (->
(cond
query-fn
(profile
"Query:"
(doall (query-fn db)))
inputs-fn
(let [inputs (inputs-fn)]
(apply d/q query db inputs))
(keyword? query)
(db-utils/get-key-value repo-url query)
(seq inputs)
(apply d/q query db inputs)
:else
(d/q query db))
transform-fn)]
(set-new-result! handler-key new-result)))))))))
(defn set-key-value
[repo-url key value]
(if value