mirror of https://github.com/logseq/logseq
Move rimraf to worker.js
parent
6ccbb046f8
commit
fb5dec9078
|
@ -33,12 +33,12 @@
|
|||
|
||||
(defonce localforage-instance (.createInstance localforage store-name))
|
||||
|
||||
(defn clear-store!
|
||||
[]
|
||||
(p/let [_ (.clear localforage)
|
||||
dbs (js/window.indexedDB.databases)]
|
||||
(doseq [db dbs]
|
||||
(js/window.indexedDB.deleteDatabase (gobj/get db "name")))))
|
||||
;; (defn clear-store!
|
||||
;; []
|
||||
;; (p/let [_ (.clear localforage)
|
||||
;; dbs (js/window.indexedDB.databases)]
|
||||
;; (doseq [db dbs]
|
||||
;; (js/window.indexedDB.deleteDatabase (gobj/get db "name")))))
|
||||
|
||||
(defn get-repo-path
|
||||
[url]
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
(ns frontend.fs
|
||||
(:require [frontend.util :as util]
|
||||
[promesa.core :as p]
|
||||
["/frontend/fs_ext" :as fs-ext]))
|
||||
[promesa.core :as p]))
|
||||
|
||||
(defn mkdir
|
||||
[dir]
|
||||
|
@ -17,7 +16,7 @@
|
|||
|
||||
(defn rmdir
|
||||
[dir]
|
||||
(fs-ext/rimraf dir js/window.pfs))
|
||||
(js/window.workerThread.rimraf dir))
|
||||
|
||||
(defn read-file
|
||||
[dir path]
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
// copied from https://github.com/wmhilton/wills-wonderful-service-worker/blob/dd31f3d63331bf1e70c1c2b6440ce6ec9e826df8/src/rimraf.js
|
||||
// Because isaacs "rimraf" is too Node-specific
|
||||
|
||||
// It's elegant in it's naivety
|
||||
export var rimraf = async function (path, fs) {
|
||||
// try {
|
||||
// // First assume path is itself a file
|
||||
// await fs.unlink(path)
|
||||
// // if that worked we're done
|
||||
// return
|
||||
// } catch (err) {
|
||||
// // Otherwise, path must be a directory
|
||||
// if (err.code !== 'EISDIR') throw err
|
||||
// }
|
||||
// Knowing path is a directory,
|
||||
// first, assume everything inside path is a file.
|
||||
let files = await fs.readdir(path)
|
||||
for (let file of files) {
|
||||
let child = path + '/' + file
|
||||
try {
|
||||
await fs.unlink(child)
|
||||
} catch (err) {
|
||||
console.log(err.code);
|
||||
if (err.code !== 'EISDIR') throw err
|
||||
}
|
||||
}
|
||||
// Assume what's left are directories and recurse.
|
||||
let dirs = await fs.readdir(path)
|
||||
for (let dir of dirs) {
|
||||
let child = path + '/' + dir
|
||||
await rimraf(child, fs)
|
||||
}
|
||||
// Finally, delete the empty directory
|
||||
await fs.rmdir(path)
|
||||
}
|
|
@ -721,16 +721,16 @@
|
|||
(reset! uploading? false))))))
|
||||
|
||||
|
||||
;; (defn clear-store!
|
||||
;; []
|
||||
;; (p/let [ks (.keys db/localforage-instance)
|
||||
;; _ (doseq [k ks]
|
||||
;; (when-not (string/ends-with? k (str "/" config/local-repo))
|
||||
;; (.removeItem db/localforage-instance k)))
|
||||
;; dirs (fs/readdir "/")]
|
||||
;; (doseq [dir dirs]
|
||||
;; (when (not= dir config/local-repo)
|
||||
;; (fs/rmdir (str "/" dir))))))
|
||||
(defn clear-store!
|
||||
[]
|
||||
(p/let [ks (.keys db/localforage-instance)
|
||||
_ (doseq [k ks]
|
||||
(when-not (string/ends-with? k (str "/" config/local-repo))
|
||||
(.removeItem db/localforage-instance k)))
|
||||
dirs (fs/readdir "/")]
|
||||
(doseq [dir dirs]
|
||||
(when (not= dir config/local-repo)
|
||||
(fs/rmdir (str "/" dir))))))
|
||||
|
||||
;; clear localforage
|
||||
(defn sign-out!
|
||||
|
@ -740,7 +740,7 @@
|
|||
;; remember not to remove the encrypted token
|
||||
(storage/set :git/current-repo config/local-repo)
|
||||
(storage/remove :git/clone-repo)
|
||||
(db/clear-store!))
|
||||
(clear-store!))
|
||||
(p/catch (fn [e]
|
||||
(println "sign out error: ")
|
||||
(js/console.dir e)))
|
||||
|
|
Loading…
Reference in New Issue