瀏覽代碼

enhance: log invalid url

Tienson Qin 5 月之前
父節點
當前提交
07781dabe8
共有 1 個文件被更改,包括 7 次插入7 次删除
  1. 7 7
      deps/common/src/logseq/common/path.cljs

+ 7 - 7
deps/common/src/logseq/common/path.cljs

@@ -63,7 +63,6 @@
                 (re-find #"(?i)^(COM[0-9]|CON|LPT[0-9]|NUL|PRN|AUX|com[0-9]|con|lpt[0-9]|nul|prn|aux)\..+" fname)
                 (re-find #"[\u0000-\u001f\u0080-\u009f]" fname)))))
 
-
 (defn- path-join-internal
   "Joins the given path segments into a single path, handling relative paths,
   '..' and '.' normalization."
@@ -153,7 +152,6 @@
         encoded-new-path (apply uri-path-join-internal path segments)]
     (str scheme "//" domain encoded-new-path)))
 
-
 (defn path-join
   "Join path segments, or URL base and path segments"
   [base & segments]
@@ -191,13 +189,11 @@
     :else
     (path-join (str protocol "//") path)))
 
-
 (defn- path-normalize-internal
   "Normalize path using path-join, break into segment and re-join"
   [path]
   (path-join path))
 
-
 (defn url-normalize
   [origin-url]
   (let [^js url (js/URL. origin-url)
@@ -223,7 +219,13 @@
   (if (is-file-url? original-url)
     ;; NOTE: URL type is not consistent across all protocols
     ;; Check file:// and assets://, pathname behavior is different
-    (let [^js url (js/URL. (string/replace (safe-decode-uri-component original-url) "assets://" "file://"))
+    (let [^js url (try
+                    (js/URL. (string/replace (safe-decode-uri-component original-url) "assets://" "file://"))
+                    (catch :default e
+                      (js/console.error "invalid URL:"
+                                        (str "original-url: " original-url
+                                             " url: " (string/replace (safe-decode-uri-component original-url) "assets://" "file://")))
+                      (throw e)))
           path (.-pathname url)
           host (.-host url)
           path (if (string/starts-with? path "///")
@@ -276,7 +278,6 @@
           (safe-decode-uri-component (str base-prefix (string/join "/" remain-segs)))
           (str base-prefix (string/join "/" remain-segs)))))))
 
-
 (defn parent
   "Parent, containing directory"
   [path]
@@ -285,7 +286,6 @@
     (path-normalize (str path "/.."))
     nil))
 
-
 (defn resolve-relative-path
   "Assume current-path is a file"
   [current-path rel-path]