mirror of
https://github.com/logseq/logseq.git
synced 2026-02-01 22:47:36 +00:00
chore: mv file graph specific fns out ldb
This commit is contained in:
@@ -65,6 +65,7 @@
|
||||
electron.ipc ipc
|
||||
electron.utils utils
|
||||
frontend.commands commands
|
||||
frontend.common.file-based.db common-file-db
|
||||
frontend.common.date common-date
|
||||
frontend.common.file.core common-file
|
||||
frontend.common.file.util wfu
|
||||
|
||||
36
deps/db/src/logseq/db.cljs
vendored
36
deps/db/src/logseq/db.cljs
vendored
@@ -19,8 +19,7 @@
|
||||
[logseq.db.frontend.rules :as rules]
|
||||
[logseq.db.common.entity-util :as common-entity-util]
|
||||
[logseq.db.common.sqlite :as sqlite-common-db]
|
||||
[logseq.db.sqlite.util :as sqlite-util]
|
||||
[logseq.db.file-based.rules :as file-rules])
|
||||
[logseq.db.sqlite.util :as sqlite-util])
|
||||
(:refer-clojure :exclude [object?]))
|
||||
|
||||
(defonce *transact-fn (atom nil))
|
||||
@@ -534,39 +533,6 @@
|
||||
[db]
|
||||
(when db (get-key-value db :logseq.kv/remote-schema-version)))
|
||||
|
||||
;; File based fns
|
||||
(defn get-namespace-pages
|
||||
"Accepts both sanitized and unsanitized namespaces"
|
||||
[db namespace' {:keys [db-graph?]}]
|
||||
(assert (string? namespace'))
|
||||
(let [namespace'' (common-util/page-name-sanity-lc namespace')
|
||||
pull-attrs (cond-> [:db/id :block/name :block/title :block/namespace]
|
||||
(not db-graph?)
|
||||
(conj {:block/file [:db/id :file/path]}))]
|
||||
(d/q
|
||||
[:find [(list 'pull '?c pull-attrs) '...]
|
||||
:in '$ '% '?namespace
|
||||
:where
|
||||
['?p :block/name '?namespace]
|
||||
(list 'namespace '?p '?c)]
|
||||
db
|
||||
(:namespace file-rules/rules)
|
||||
namespace'')))
|
||||
|
||||
(defn get-pages-by-name-partition
|
||||
[db partition']
|
||||
(when-not (string/blank? partition')
|
||||
(let [partition'' (common-util/page-name-sanity-lc (string/trim partition'))
|
||||
ids (->> (d/datoms db :aevt :block/name)
|
||||
(filter (fn [datom]
|
||||
(let [page (:v datom)]
|
||||
(string/includes? page partition''))))
|
||||
(map :e))]
|
||||
(when (seq ids)
|
||||
(d/pull-many db
|
||||
'[:db/id :block/name :block/title]
|
||||
ids)))))
|
||||
|
||||
(defn get-all-properties
|
||||
[db]
|
||||
(->> (d/datoms db :avet :block/tags :logseq.class/Property)
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
["frontend.handler.file-based" "frontend.handler.file-sync"
|
||||
"frontend.db.file-based"
|
||||
"frontend.util.file-based"
|
||||
"frontend.common.file-based"
|
||||
"frontend.worker.handler.page.file-based"
|
||||
;; Want to only specify this ns and not the ones under it but don't have a way yet
|
||||
"frontend.worker.file"
|
||||
@@ -56,6 +57,7 @@
|
||||
"Paths _only_ for file graphs"
|
||||
["src/main/frontend/handler/file_based" "src/main/frontend/handler/file_sync.cljs" "src/main/frontend/db/file_based"
|
||||
"src/main/frontend/util/file_based" "src/main/frontend/worker/handler/page/file_based" "src/main/frontend/worker/file.cljs"
|
||||
"src/main/frontend/common/file_based"
|
||||
"src/main/frontend/fs"
|
||||
"src/main/frontend/components/file_sync.cljs"
|
||||
"src/main/frontend/components/file_based"
|
||||
|
||||
37
src/main/frontend/common/file_based/db.cljs
Normal file
37
src/main/frontend/common/file_based/db.cljs
Normal file
@@ -0,0 +1,37 @@
|
||||
(ns frontend.common.file-based.db
|
||||
"Database fns for file graphs that are used by worker and frontend"
|
||||
(:require [clojure.string :as string]
|
||||
[datascript.core :as d]
|
||||
[logseq.common.util :as common-util]
|
||||
[logseq.db.file-based.rules :as file-rules]))
|
||||
|
||||
(defn get-namespace-pages
|
||||
"Accepts both sanitized and unsanitized namespaces"
|
||||
[db namespace']
|
||||
(assert (string? namespace'))
|
||||
(let [namespace'' (common-util/page-name-sanity-lc namespace')
|
||||
pull-attrs [:db/id :block/name :block/original-name :block/namespace
|
||||
{:block/file [:db/id :file/path]}]]
|
||||
(d/q
|
||||
[:find [(list 'pull '?c pull-attrs) '...]
|
||||
:in '$ '% '?namespace
|
||||
:where
|
||||
['?p :block/name '?namespace]
|
||||
(list 'namespace '?p '?c)]
|
||||
db
|
||||
(:namespace file-rules/rules)
|
||||
namespace'')))
|
||||
|
||||
(defn get-pages-by-name-partition
|
||||
[db partition']
|
||||
(when-not (string/blank? partition')
|
||||
(let [partition'' (common-util/page-name-sanity-lc (string/trim partition'))
|
||||
ids (->> (d/datoms db :aevt :block/name)
|
||||
(filter (fn [datom]
|
||||
(let [page (:v datom)]
|
||||
(string/includes? page partition''))))
|
||||
(map :e))]
|
||||
(when (seq ids)
|
||||
(d/pull-many db
|
||||
'[:db/id :block/name :block/title]
|
||||
ids)))))
|
||||
@@ -6,6 +6,7 @@
|
||||
[clojure.string :as string]
|
||||
[clojure.walk :as walk]
|
||||
[datascript.core :as d]
|
||||
[frontend.common.file-based.db :as common-file-db]
|
||||
[frontend.config :as config]
|
||||
[frontend.date :as date]
|
||||
[frontend.db.conn :as conn]
|
||||
@@ -912,7 +913,7 @@ independent of format as format specific heading characters are stripped"
|
||||
(defn get-namespace-pages
|
||||
"Accepts both sanitized and unsanitized namespaces"
|
||||
[repo namespace]
|
||||
(ldb/get-namespace-pages (conn/get-db repo) namespace {:db-graph? (config/db-based-graph? repo)}))
|
||||
(common-file-db/get-namespace-pages (conn/get-db repo) namespace))
|
||||
|
||||
(defn- tree [flat-col root]
|
||||
(let [sort-fn #(sort-by :block/name %)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
(ns frontend.worker.handler.page.file-based.rename
|
||||
"File based page rename"
|
||||
(:require [frontend.worker.handler.page :as worker-page]
|
||||
(:require [frontend.common.file-based.db :as common-file-db]
|
||||
[frontend.worker.handler.page :as worker-page]
|
||||
[datascript.core :as d]
|
||||
[clojure.string :as string]
|
||||
[clojure.walk :as walk]
|
||||
@@ -254,7 +255,7 @@
|
||||
(defn- rename-namespace-pages!
|
||||
"Original names (unsanitized only)"
|
||||
[repo conn config old-name new-name]
|
||||
(let [pages (ldb/get-namespace-pages @conn old-name {})
|
||||
(let [pages (common-file-db/get-namespace-pages @conn old-name)
|
||||
page (d/pull @conn '[*] [:block/name (common-util/page-name-sanity-lc old-name)])
|
||||
pages (cons page pages)]
|
||||
(doseq [{:block/keys [name title]} pages]
|
||||
@@ -274,8 +275,8 @@
|
||||
(let [nested-page-str (page-ref/->page-ref (common-util/page-name-sanity-lc old-ns-name))
|
||||
ns-prefix-format-str (str page-ref/left-brackets "%s/")
|
||||
ns-prefix (common-util/format ns-prefix-format-str (common-util/page-name-sanity-lc old-ns-name))
|
||||
nested-pages (ldb/get-pages-by-name-partition @conn nested-page-str)
|
||||
nested-pages-ns (ldb/get-pages-by-name-partition @conn ns-prefix)]
|
||||
nested-pages (common-file-db/get-pages-by-name-partition @conn nested-page-str)
|
||||
nested-pages-ns (common-file-db/get-pages-by-name-partition @conn ns-prefix)]
|
||||
(when nested-pages
|
||||
;; rename page "[[obsidian]] is a tool" to "[[logseq]] is a tool"
|
||||
(doseq [{:block/keys [name title]} nested-pages]
|
||||
|
||||
Reference in New Issue
Block a user