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

enhance: report file path when parsing failed

Tienson Qin 4 лет назад
Родитель
Сommit
0e34c87eac
2 измененных файлов с 24 добавлено и 16 удалено
  1. 22 15
      src/main/frontend/format/mldoc.cljs
  2. 2 1
      src/main/frontend/handler/extract.cljs

+ 22 - 15
src/main/frontend/format/mldoc.cljs

@@ -241,25 +241,32 @@
             (update-src-full-content content)
             (collect-page-properties)))
       (catch js/Error e
-        (log/error :edn/convert-failed e)
+        (js/console.error e)
         []))
     (log/error :edn/wrong-content-type content)))
 
 (defn ->edn-async
-  [content config]
-  (if util/node-test?
-    (p/resolved (->edn content config))
-    (try
-      (if (string/blank? content)
-        (p/resolved [])
-        (p/let [v (pool/add-parse-job! content config)]
-          (-> v
-              (util/json->clj)
-              (update-src-full-content content)
-              (collect-page-properties))))
-      (catch js/Error e
-        (log/error :edn/convert-failed e)
-        (p/resolved [])))))
+  ([content config]
+   (->edn-async nil content config))
+  ([file content config]
+   (if util/node-test?
+     (p/resolved (->edn content config))
+     (try
+       (if (string/blank? content)
+         (p/resolved [])
+         (p/let [v (pool/add-parse-job! content config)]
+           (try
+             (-> v
+                 (util/json->clj)
+                 (update-src-full-content content)
+                 (collect-page-properties))
+             (catch js/Error e
+               (println :parser/failed file)
+               (js/console.error e)
+               (p/resolved [])))))
+       (catch js/Error e
+         (log/error :parser/failed e)
+         (p/resolved []))))))
 
 (defn opml->edn
   [content]

+ 2 - 1
src/main/frontend/handler/extract.cljs

@@ -163,7 +163,8 @@
              _ (println "Parsing start : " file)
              parse-f (if (and (mobile/is-native-platform?) config/dev?)
                        mldoc/->edn
-                       mldoc/->edn-async)
+                       (fn [content config]
+                         (mldoc/->edn-async file content config)))
              ast (parse-f content (mldoc/default-config format))]
        _ (println "Parsing finished : " file)
        (let [journal? (config/journal? file)