Просмотр исходного кода

Display explicit error for one remaining react-query (advanced query)

This is a follow up to #4434. I've now confirmed that all uses of
react/react-query benefit from an explicit exception as they will now
see an explicit error instead of 0 results which is confusing for the
user and harder for us to debug
Gabriel Horner 3 лет назад
Родитель
Сommit
d955918525

+ 2 - 4
src/main/frontend/db/query_dsl.cljs

@@ -588,8 +588,7 @@ Some bindings in this fn:
                   (react/react-query repo
                                      {:query query
                                       :query-string query-string
-                                      :rules rules
-                                      :throw-exception true}
+                                      :rules rules}
                                      {:use-cache? false
                                       :transform-fn transform-fn})
                   (catch ExceptionInfo e
@@ -609,8 +608,7 @@ Some bindings in this fn:
                            (merge
                             query-m
                             {:query query
-                             :rules rules
-                             :throw-exception true})
+                             :rules rules})
                            (merge
                             query-opts
                             (when sort-by

+ 11 - 17
src/main/frontend/db/query_react.cljs

@@ -112,24 +112,18 @@
          f)) query)))
 
 (defn react-query
-  [repo {:keys [query inputs throw-exception rules] :as query'} query-opts]
+  [repo {:keys [query inputs rules] :as query'} query-opts]
   (let [pprint (if config/dev? (fn [_] nil) debug/pprint)]
     (pprint "================")
     (pprint "Use the following to debug your datalog queries:")
     (pprint query')
-    (try
-      (let [query (resolve-query query)
-            resolved-inputs (mapv resolve-input inputs)
-            inputs (cond-> resolved-inputs
-                           rules
-                           (conj rules))
-            repo (or repo (state/get-current-repo))
-            k [:custom query']]
-        (pprint "inputs (post-resolution):" resolved-inputs)
-        (pprint "query-opts:" query-opts)
-        (apply react/q repo k query-opts query inputs))
-      (catch js/Error e
-        (when throw-exception
-          (throw (ex-info (.-message e) {})))
-        (pprint "Custom query failed: " {:query query'})
-        (js/console.dir e)))))
+    (let [query (resolve-query query)
+          resolved-inputs (mapv resolve-input inputs)
+          inputs (cond-> resolved-inputs
+                         rules
+                         (conj rules))
+          repo (or repo (state/get-current-repo))
+          k [:custom query']]
+      (pprint "inputs (post-resolution):" resolved-inputs)
+      (pprint "query-opts:" query-opts)
+      (apply react/q repo k query-opts query inputs))))

+ 1 - 2
src/main/frontend/extensions/srs.cljs

@@ -261,8 +261,7 @@
        (when-let [query (query-dsl/query-wrapper query* true)]
          (let [result (react/react-query repo
                                          {:query query
-                                          :rules (or rules [])
-                                          :throw-exception true}
+                                          :rules (or rules [])}
                                          (merge
                                           {:use-cache? use-cache?}
                                           (cond->

+ 1 - 1
src/test/frontend/db/query_dsl_test.cljs

@@ -454,7 +454,7 @@ last-modified-at:: 1609084800002"}]]
 
   (is (= ["LATER b3"]
          (map :block/content (custom-query {:query (list 'and '(task later) "b")})))
-      "Try"))
+      "Query with rule that can't be derived from the form itself"))
 
 #_(deftest sort-by-queries
     (load-test-files-with-timestamps)