Sfoglia il codice sorgente

Fix most electron lints

Also fixed minor bug with incorrect notification for writeFile error handler
Gabriel Horner 3 anni fa
parent
commit
79ff56a7bd

+ 4 - 5
src/electron/electron/configs.cljs

@@ -12,10 +12,9 @@
 (defn- ensure-cfg
   []
   (try
-    (do
-      (.ensureFileSync fs cfg-path)
-      (let [body (.toString (.readFileSync fs cfg-path))]
-        (if (seq body) (reader/read-string body) {})))
+    (.ensureFileSync fs cfg-path)
+    (let [body (.toString (.readFileSync fs cfg-path))]
+      (if (seq body) (reader/read-string body) {}))
     (catch js/Error e
       (js/console.error :cfg-error e)
       {})))
@@ -23,7 +22,7 @@
 (defn- write-cfg!
   [cfg]
   (try
-    (do (.writeFileSync fs cfg-path (pr-str cfg)) cfg)
+    (.writeFileSync fs cfg-path (pr-str cfg)) cfg
     (catch js/Error e
       (js/console.error :cfg-error e))))
 

+ 3 - 4
src/electron/electron/core.cljs

@@ -2,8 +2,7 @@
   (:require [electron.handler :as handler]
             [electron.search :as search]
             [electron.updater :refer [init-updater]]
-            [electron.utils :refer [*win mac? win32? linux? prod? dev? logger open get-win-from-sender]]
-            [electron.configs :as cfgs]
+            [electron.utils :refer [*win mac? linux? logger get-win-from-sender]]
             [clojure.string :as string]
             [promesa.core :as p]
             [cljs-bean.core :as bean]
@@ -11,7 +10,7 @@
             ["fs-extra" :as fs]
             ["path" :as path]
             ["os" :as os]
-            ["electron" :refer [BrowserWindow app protocol ipcMain dialog Menu MenuItem session] :as electron]
+            ["electron" :refer [BrowserWindow app protocol ipcMain dialog] :as electron]
             [clojure.core.async :as async]
             [electron.state :as state]
             [electron.git :as git]
@@ -246,7 +245,7 @@
                (.on app "before-quit" (fn [_e]
                                         (reset! win/*quitting? true)))
 
-               (.on app "activate" #(if @*win (.show win)))))))))
+               (.on app "activate" #(when @*win (.show win)))))))))
 
 (defn start []
   (js/console.log "Main - start")

+ 1 - 4
src/electron/electron/fs_watcher.cljs

@@ -2,11 +2,8 @@
   (:require [cljs-bean.core :as bean]
             ["fs" :as fs]
             ["chokidar" :as watcher]
-            [promesa.core :as p]
-            [clojure.string :as string]
             [electron.utils :as utils]
-            ["electron" :refer [app]]
-            [electron.window :as win]))
+            ["electron" :refer [app]]))
 
 ;; TODO: explore different solutions for different platforms
 ;; 1. https://github.com/Axosoft/nsfw

+ 1 - 3
src/electron/electron/git.cljs

@@ -43,7 +43,7 @@
   (try
     (let [p (.join path (state/get-graph-path) ".git")]
       (.isDirectory (fs/statSync p)))
-    (catch js/Error e
+    (catch js/Error _e
       nil)))
 
 (defn remove-dot-git-file!
@@ -148,8 +148,6 @@
   (let [args (if (string? args)
                (split-args args)
                args)
-        ok-handler (fn [result]
-                     (p/resolved result))
         error-handler (fn [error]
                         ;; TODO: why this happen?
                         (when-not (string/blank? error)

+ 22 - 25
src/electron/electron/handler.cljs

@@ -9,7 +9,6 @@
             [electron.fs-watcher :as watcher]
             [electron.configs :as cfgs]
             [promesa.core :as p]
-            [goog.object :as gobj]
             [clojure.string :as string]
             [electron.utils :as utils]
             [electron.state :as state]
@@ -47,8 +46,7 @@
   (readdir dir))
 
 (defmethod handle :unlink [_window [_ repo path]]
-  (let [basename (path/basename path)
-        file-name (-> (string/replace path (str repo "/") "")
+  (let [file-name (-> (string/replace path (str repo "/") "")
                       (string/replace "/" "_")
                       (string/replace "\\" "_"))
         recycle-dir (str repo "/logseq/.recycle")
@@ -58,8 +56,7 @@
 
 (defn backup-file
   [repo path content]
-  (let [basename (path/basename path)
-        file-name (-> (string/replace path (str repo "/") "")
+  (let [file-name (-> (string/replace path (str repo "/") "")
                       (string/replace "/" "_")
                       (string/replace "\\" "_"))
         bak-dir (str repo "/logseq/bak")
@@ -105,9 +102,9 @@
                                                                 " failed, "
                                                                 e
                                                                 (when backup-path
-                                                                  " A backup file was saved to "
-                                                                  backup-path
-                                                                  "."))}))))))
+                                                                  (str ". A backup file was saved to "
+                                                                       backup-path
+                                                                       ".")))}))))))
 
 (defmethod handle :rename [_window [_ old-path new-path]]
   (fs/renameSync old-path new-path))
@@ -145,13 +142,13 @@
           result (get (js->clj result) "filePaths")]
     (p/resolved (first result))))
 
-(defmethod handle :openDir [^js window _messages]
+(defmethod handle :openDir [^js _window _messages]
   (p/let [path (open-dir-dialog)]
     (if path
       (p/resolved (bean/->js (get-files path)))
       (p/rejected (js/Error "path empty")))))
 
-(defmethod handle :getFiles [window [_ path]]
+(defmethod handle :getFiles [_window [_ path]]
   (get-files path))
 
 (defn- sanitize-graph-name
@@ -183,7 +180,7 @@
          (map #(path/basename % ".transit"))
          (map graph-name->path))))
 
-(defmethod handle :getGraphs [window [_]]
+(defmethod handle :getGraphs [_window [_]]
   (get-graphs))
 
 (defn- get-graph-path
@@ -200,40 +197,40 @@
       (when (fs/existsSync file-path)
         (utils/read-file file-path)))))
 
-(defmethod handle :getSerializedGraph [window [_ graph-name]]
+(defmethod handle :getSerializedGraph [_window [_ graph-name]]
   (get-serialized-graph graph-name))
 
-(defmethod handle :saveGraph [window [_ graph-name value-str]]
+(defmethod handle :saveGraph [_window [_ graph-name value-str]]
   (when (and graph-name value-str)
     (when-let [file-path (get-graph-path graph-name)]
       (fs/writeFileSync file-path value-str))))
 
-(defmethod handle :deleteGraph [window [_ graph-name]]
+(defmethod handle :deleteGraph [_window [_ graph-name]]
   (when graph-name
     (when-let [file-path (get-graph-path graph-name)]
       (when (fs/existsSync file-path)
         (fs-extra/removeSync file-path)))))
 
-(defmethod handle :openNewWindow [window [_]]
+(defmethod handle :openNewWindow [_window [_]]
   (let [win (win/create-main-window)]
     (win/on-close-save! win)
     (win/setup-window-listeners! win)
     nil))
 
-(defmethod handle :persistent-dbs-saved [window _]
+(defmethod handle :persistent-dbs-saved [_window _]
   (async/put! state/persistent-dbs-chan true)
   true)
 
-(defmethod handle :search-blocks [window [_ repo q opts]]
+(defmethod handle :search-blocks [_window [_ repo q opts]]
   (search/search-blocks repo q opts))
 
-(defmethod handle :rebuild-blocks-indice [window [_ repo data]]
+(defmethod handle :rebuild-blocks-indice [_window [_ repo data]]
   (search/truncate-blocks-table! repo)
   ;; unneeded serialization
   (search/upsert-blocks! repo (bean/->js data))
   [])
 
-(defmethod handle :transact-blocks [window [_ repo data]]
+(defmethod handle :transact-blocks [_window [_ repo data]]
   (let [{:keys [blocks-to-remove-set blocks-to-add]} data]
     (when (seq blocks-to-remove-set)
       (search/delete-blocks! repo blocks-to-remove-set))
@@ -241,10 +238,10 @@
       ;; unneeded serialization
       (search/upsert-blocks! repo (bean/->js blocks-to-add)))))
 
-(defmethod handle :truncate-blocks [window [_ repo]]
+(defmethod handle :truncate-blocks [_window [_ repo]]
   (search/truncate-blocks-table! repo))
 
-(defmethod handle :remove-db [window [_ repo]]
+(defmethod handle :remove-db [_window [_ repo]]
   (search/delete-db! repo))
 
 (defn clear-cache!
@@ -271,7 +268,7 @@
   (when dir
     (watcher/watch-dir! window dir)))
 
-(defmethod handle :openDialog [^js window messages]
+(defmethod handle :openDialog [^js _window _messages]
   (open-dir-dialog))
 
 (defmethod handle :getLogseqDotDirRoot []
@@ -297,7 +294,7 @@
 (defmethod handle :getDirname [_]
   js/__dirname)
 
-(defmethod handle :getAppBaseInfo [^js win [_ opts]]
+(defmethod handle :getAppBaseInfo [^js win [_ _opts]]
   {:isFullScreen (.isFullScreen win)})
 
 (defmethod handle :setCurrentGraph [^js win [_ path]]
@@ -325,11 +322,11 @@
 (defmethod handle :quitAndInstall []
   (.quitAndInstall autoUpdater))
 
-(defmethod handle :graphUnlinked [^js win [_ repo]]
+(defmethod handle :graphUnlinked [^js _win [_ repo]]
   (doseq [window (win/get-all-windows)]
     (utils/send-to-renderer window "graphUnlinked" (bean/->clj repo))))
 
-(defmethod handle :dbsync [^js win [_ graph tx-data]]
+(defmethod handle :dbsync [^js _win [_ graph tx-data]]
   (let [dir (utils/get-graph-dir graph)]
     (doseq [window (win/get-graph-all-windows dir)]
       (utils/send-to-renderer window "dbsync"

+ 8 - 15
src/electron/electron/plugin.cljs

@@ -6,10 +6,9 @@
             ["fs-extra" :as fs]
             ["path" :as path]
             [clojure.string :as string]
-            [electron.utils :refer [logger]]
+            [electron.utils :refer [logger fetch extract-zip] :as utils]
             [electron.configs :as cfgs]
-            [electron.window :refer [get-all-windows]]
-            [electron.utils :refer [*win fetch extract-zip] :as utils]))
+            [electron.window :refer [get-all-windows]]))
 
 ;; update & install
 ;;(def *installing-or-updating (atom nil))
@@ -46,20 +45,14 @@
       (emit :lsp-installed {:status :error :payload e})
       (throw (js/Error. :release-network-issue)))))
 
-(defn fetch-tag-release-asset
-  [repo tag])
-
 (defn download-asset-zip
   [{:keys [id repo title author description effect sponsors]} dl-url dl-version dot-extract-to]
   (p/catch
     (p/let [^js res (fetch dl-url #js {:timeout 30000})
-            _ (if-not (.-ok res) (throw (js/Error. :download-network-issue)))
+            _ (when-not (.-ok res) (throw (js/Error. :download-network-issue)))
             frm-zip (p/create
                       (fn [resolve1 reject1]
-                        (let [headers (. res -headers)
-                              body (.-body res)
-                              total-size (js/parseInt (.get headers "content-length"))
-                              start-at (.now js/Date)
+                        (let [body (.-body res)
                               *downloaded (atom 0)
                               dest-basename (path/basename dl-url)
                               dest-basename (if-not (string/ends-with? dest-basename ".zip")
@@ -73,7 +66,7 @@
                                             (reset! *downloaded downloaded))))
                             (.on "error" (fn [^js e]
                                            (reject1 e)))
-                            (.on "end" (fn [^js e]
+                            (.on "end" (fn [^js _e]
                                          (.close dest-file)
                                          (let [dest-file (string/replace tmp-dest-file ".pending" "")]
                                            (fs/renameSync tmp-dest-file dest-file)
@@ -93,7 +86,7 @@
                                    "."
                                    (last (take-while #(pkg? (.join path zip-extracted-path %)) dirs))))
 
-            _ (if-not tmp-extracted-root
+            _ (when-not tmp-extracted-root
                 (throw (js/Error. :invalid-plugin-package)))
 
             tmp-extracted-root (.join path zip-extracted-path tmp-extracted-root)
@@ -133,7 +126,7 @@
       (debug (if updating? "Updating:" "Installing:") repo)
 
       (-> (p/create
-            (fn [resolve reject]
+            (fn [resolve _reject]
               ;;(reset! *installing-or-updating item)
               ;; get releases
               (-> (p/let [[asset latest-version] (fetch-latest-release-asset item)
@@ -157,7 +150,7 @@
                               (throw (js/Error. :release-asset-not-found)))
 
                           dest (.join path cfgs/dot-root "plugins" (:id item))
-                          _ (if-not only-check (download-asset-zip item dl-url latest-version dest))
+                          _ (when-not only-check (download-asset-zip item dl-url latest-version dest))
                           _ (debug "[" (if only-check "Checked" "Updated") "DONE] " latest-version)]
 
                     (emit :lsp-installed

+ 10 - 10
src/electron/electron/updater.cljs

@@ -1,5 +1,5 @@
 (ns electron.updater
-  (:require [electron.utils :refer [mac? win32? prod? open fetch logger *win]]
+  (:require [electron.utils :refer [mac? prod? open fetch logger *win]]
             [frontend.version :refer [version]]
             [clojure.string :as string]
             [promesa.core :as p]
@@ -38,7 +38,7 @@
              status (.-status res)
              text (.text res)]
        (if (.-ok res)
-         (let [info (if-not (string/blank? text) (js/JSON.parse text))]
+         (let [info (when-not (string/blank? text) (js/JSON.parse text))]
            (bean/->clj info))
          (throw (js/Error. (str "[" status "] " text)))))
      (fn [e]
@@ -59,15 +59,15 @@
             [artifact (get-latest-artifact-info repo)
 
              artifact (when-let [remote-version (and artifact (re-find #"\d+\.\d+\.\d+" (:url artifact)))]
-                        (if (and (. semver valid remote-version)
-                                 (. semver lt electron-version remote-version)) artifact))
-
+                        (when (and (. semver valid remote-version)
+                                   (. semver lt electron-version remote-version)) artifact))
+             
              url (if-not artifact (do (emit "update-not-available" nil) (throw nil)) (:url artifact))
              _ (if url (emit "update-available" (bean/->js artifact)) (throw (js/Error. "download url not exists")))
                ;; start download FIXME: user's preference about auto download
              _ (when-not auto-download (throw nil))
              ^js dl-res (fetch url)
-             _ (if-not (.-ok dl-res) (throw (js/Error. "download resource not available")))
+             _ (when-not (.-ok dl-res) (throw (js/Error. "download resource not available")))
              dest-info (p/create
                         (fn [resolve1 reject1]
                           (let [headers (. dl-res -headers)
@@ -91,7 +91,7 @@
                                               (reset! *downloaded downloaded))))
                               (.on "error" (fn [e]
                                              (reject1 e)))
-                              (.on "end" (fn [e]
+                              (.on "end" (fn [_e]
                                            (.close dest-file)
                                            (let [dest-file (string/replace tmp-dest-file ".pending" "")]
                                              (fs/renameSync tmp-dest-file dest-file)
@@ -137,17 +137,17 @@
           (debug "Skip remote version [ahead of pre-release]" remote-version))))))
 
 (defn init-updater
-  [{:keys [repo logger ^js win] :as opts}]
+  [{:keys [repo _logger ^js _win] :as opts}]
   (and prod? (not= false (cfgs/get-item :auto-update)) (init-auto-updater repo))
   (let [check-channel "check-for-updates"
         install-channel "install-updates"
-        check-listener (fn [e & args]
+        check-listener (fn [_e & args]
                          (when-not @*update-pending
                            (reset! *update-pending true)
                            (p/finally
                              (check-for-updates (merge opts {:args args}))
                              #(reset! *update-pending nil))))
-        install-listener (fn [e quit-app?]
+        install-listener (fn [_e quit-app?]
                            (when-let [dest-file (:dest-file @*update-ready-to-install)]
                              (open dest-file)
                              (and quit-app? (js/setTimeout #(.quit app) 1000))))]

+ 1 - 1
src/electron/electron/utils.cljs

@@ -28,7 +28,7 @@
 (defn get-ls-default-plugins
   []
   (let [plugins-root (path/join (get-ls-dotdir-root) "plugins")
-        _ (if-not (fs/existsSync plugins-root)
+        _ (when-not (fs/existsSync plugins-root)
             (fs/mkdirSync plugins-root))
         dirs (js->clj (fs/readdirSync plugins-root #js{"withFileTypes" true}))
         dirs (->> dirs

+ 2 - 2
src/electron/electron/window.cljs

@@ -1,8 +1,8 @@
 (ns electron.window
   (:require ["electron-window-state" :as windowStateKeeper]
-            [electron.utils :refer [*win mac? win32? linux? prod? dev? logger open]]
+            [electron.utils :refer [mac? win32? linux? dev? logger open]]
             [electron.configs :as cfgs]
-            ["electron" :refer [BrowserWindow app protocol ipcMain dialog Menu MenuItem session shell] :as electron]
+            ["electron" :refer [BrowserWindow app Menu MenuItem session shell] :as electron]
             ["path" :as path]
             ["url" :as URL]
             [electron.state :as state]