Bläddra i källkod

fix(electron): absolute path on win32

charlie 4 år sedan
förälder
incheckning
3e0e85aa03
3 ändrade filer med 15 tillägg och 4 borttagningar
  1. 3 1
      resources/js/preload.js
  2. 4 3
      src/main/frontend/fs.cljs
  3. 8 0
      src/main/frontend/util.cljc

+ 3 - 1
resources/js/preload.js

@@ -139,5 +139,7 @@ contextBridge.exposeInMainWorld('apis', {
 
   setZoomFactor (factor) {
     webFrame.setZoomFactor(factor)
-  }
+  },
+
+  isAbsolutePath: path.isAbsolute.bind(path)
 })

+ 4 - 3
src/main/frontend/fs.cljs

@@ -138,9 +138,10 @@
   ([repo dir path]
    (create-if-not-exists repo dir path ""))
   ([repo dir path initial-content]
-   (let [path (if (util/starts-with? path "/")
-                path
-                (str "/" path))]
+   (let [path (if (util/is-absolute-path path) path
+                  (if (util/starts-with? path "/")
+                    path
+                    (str "/" path)))]
      (->
       (p/let [stat (stat dir path)]
         true)

+ 8 - 0
src/main/frontend/util.cljc

@@ -1070,6 +1070,14 @@
 (defonce win32? #?(:cljs goog.userAgent/WINDOWS
                    :clj nil))
 
+#?(:cljs
+   (defn is-absolute-path
+     [path]
+     (try
+       (js/window.apis.isAbsolutePath path)
+       (catch js/Error _
+         (node-path.isAbsolute path)))))
+
 (defn ->system-modifier
   [keyboard-shortcut]
   (if mac?