Sfoglia il codice sorgente

refactor: mv common ns out of db ns

Also move common and file fns out of db ns. Cleanup allows
for better separation linting
Gabriel Horner 8 mesi fa
parent
commit
6a635ecb49
33 ha cambiato i file con 56 aggiunte e 55 eliminazioni
  1. 2 2
      .clj-kondo/config.edn
  2. 1 1
      deps/db/.clj-kondo/config.edn
  3. 10 1
      deps/db/src/logseq/db.cljs
  4. 1 1
      deps/db/src/logseq/db/common/delete_blocks.cljs
  5. 2 2
      deps/db/src/logseq/db/common/entity_plus.cljc
  6. 1 1
      deps/db/src/logseq/db/common/property_util.cljs
  7. 9 2
      deps/db/src/logseq/db/common/sqlite.cljs
  8. 1 1
      deps/db/src/logseq/db/common/view.cljs
  9. 1 1
      deps/db/src/logseq/db/frontend/malli_schema.cljs
  10. 1 1
      deps/db/src/logseq/db/sqlite/cli.cljs
  11. 1 1
      deps/db/src/logseq/db/sqlite/create_graph.cljs
  12. 1 1
      deps/db/src/logseq/db/sqlite/export.cljs
  13. 1 16
      deps/db/src/logseq/db/sqlite/util.cljs
  14. 1 1
      deps/db/src/logseq/db/test/helper.cljs
  15. 1 1
      deps/graph-parser/test/logseq/graph_parser/exporter_test.cljs
  16. 1 1
      deps/outliner/src/logseq/outliner/pipeline.cljs
  17. 1 1
      deps/outliner/src/logseq/outliner/property.cljs
  18. 1 1
      deps/outliner/test/logseq/outliner/validate_test.cljs
  19. 1 1
      deps/publishing/src/logseq/publishing/db.cljs
  20. 1 2
      scripts/src/logseq/tasks/dev/db_and_file_graphs.clj
  21. 1 1
      src/electron/electron/handler.cljs
  22. 2 2
      src/main/frontend/background_tasks.cljs
  23. 1 1
      src/main/frontend/common/file/core.cljs
  24. 1 1
      src/main/frontend/common/graph_view.cljs
  25. 1 1
      src/main/frontend/components/block.cljs
  26. 1 1
      src/main/frontend/db/utils.cljs
  27. 1 1
      src/main/frontend/extensions/fsrs.cljs
  28. 1 1
      src/main/frontend/handler/editor.cljs
  29. 1 1
      src/main/frontend/state.cljs
  30. 2 2
      src/main/frontend/worker/db/fix.cljs
  31. 2 2
      src/main/frontend/worker/db_worker.cljs
  32. 1 1
      src/main/frontend/worker/handler/page/db_based/page.cljs
  33. 2 1
      src/main/frontend/worker/pipeline.cljs

+ 2 - 2
.clj-kondo/config.edn

@@ -45,7 +45,7 @@
    rum.core/use-layout-effect! {:message "Use frontend.hooks/use-layout-effect! instead" :level :info}
    rum.core/use-callback {:message "Use frontend.hooks/use-callback instead" :level :info}}
   :unused-namespace {:level :warning
-                     :exclude [logseq.db.frontend.entity-plus]}
+                     :exclude [logseq.db.common.entity-plus]}
 
   ;; TODO:lint: Remove node-path excludes once we have a cleaner api
   :unresolved-var {:exclude [frontend.util/node-path.basename
@@ -185,7 +185,7 @@
              logseq.db.frontend.content db-content
              logseq.db.frontend.db db-db
              logseq.db.frontend.db-ident db-ident
-             logseq.db.frontend.entity-plus entity-plus
+             logseq.db.common.entity-plus entity-plus
              logseq.db.frontend.entity-util entity-util
              logseq.db.frontend.inputs db-inputs
              logseq.db.frontend.property db-property

+ 1 - 1
deps/db/.clj-kondo/config.edn

@@ -25,7 +25,7 @@
              logseq.db.file-based.rules file-rules
              logseq.db.file-based.schema file-schema
              logseq.db.file-based.entity-util file-entity-util
-             logseq.db.frontend.entity-plus entity-plus
+             logseq.db.common.entity-plus entity-plus
              logseq.db.frontend.rules rules
              logseq.db.frontend.schema db-schema
              logseq.db.frontend.validate db-validate

+ 10 - 1
deps/db/src/logseq/db.cljs

@@ -10,14 +10,16 @@
             [logseq.common.util :as common-util]
             [logseq.common.uuid :as common-uuid]
             [logseq.db.common.delete-blocks :as delete-blocks] ;; Load entity extensions
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.common.entity-util :as common-entity-util]
             [logseq.db.common.sqlite :as sqlite-common-db]
+            [logseq.db.file-based.schema :as file-schema]
             [logseq.db.frontend.class :as db-class]
             [logseq.db.frontend.db :as db-db]
-            [logseq.db.frontend.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.rules :as rules]
+            [logseq.db.frontend.schema :as db-schema]
             [logseq.db.sqlite.util :as sqlite-util])
   (:refer-clojure :exclude [object?]))
 
@@ -578,3 +580,10 @@
          :where
          [?page :block/tags ?tag]]
        db))
+
+(defn get-schema
+  "Returns schema for given repo"
+  [repo]
+  (if (db-based-graph? repo)
+    db-schema/schema
+    file-schema/schema))

+ 1 - 1
deps/db/src/logseq/db/common/delete_blocks.cljs

@@ -6,7 +6,7 @@
             [logseq.common.util.block-ref :as block-ref]
             [logseq.common.util.page-ref :as page-ref]
             [logseq.db.common.entity-util :as common-entity-util]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]))
 
 (defn- replace-ref-with-deleted-block-title

+ 2 - 2
deps/db/src/logseq/db/frontend/entity_plus.cljc → deps/db/src/logseq/db/common/entity_plus.cljc

@@ -1,4 +1,4 @@
-(ns logseq.db.frontend.entity-plus
+(ns logseq.db.common.entity-plus
   "Add map ops such as assoc/dissoc to datascript Entity.
 
    NOTE: This doesn't work for nbb/sci yet because of https://github.com/babashka/sci/issues/639"
@@ -58,7 +58,7 @@
     ;; FIXME: Correct dependency ordering instead of resolve workaround
     #?(:org.babashka/nbb false
        :cljs (when-let [f (resolve 'frontend.common.missionary/background-task-running?)]
-               (f :logseq.db.frontend.entity-plus/reset-immutable-entities-cache!)))))
+               (f :logseq.db.common.entity-plus/reset-immutable-entities-cache!)))))
 
 (defn entity-memoized
   [db eid]

+ 1 - 1
deps/db/src/logseq/db/common/property_util.cljs

@@ -1,7 +1,7 @@
 (ns logseq.db.common.property-util
   "Property related util fns. Fns used in both DB and file graphs should go here"
   (:require [datascript.core :as d]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property.type :as db-property-type]
             [logseq.db.sqlite.util :as sqlite-util]))

+ 9 - 2
deps/db/src/logseq/db/common/sqlite.cljs

@@ -11,7 +11,7 @@
             [logseq.common.util.date-time :as date-time-util]
             [logseq.db.common.entity-util :as common-entity-util]
             [logseq.db.common.order :as db-order]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.sqlite.util :as sqlite-util]))
 
@@ -349,9 +349,16 @@
   (or (d/restore-conn storage)
       (d/create-conn schema {:storage storage})))
 
+(defonce file-version-prefix "logseq_local_")
+
+(defn local-file-based-graph?
+  [s]
+  (and (string? s)
+       (string/starts-with? s file-version-prefix)))
+
 (defn sanitize-db-name
   [db-name]
-  (if (string/starts-with? db-name sqlite-util/file-version-prefix)
+  (if (string/starts-with? db-name file-version-prefix)
     (-> db-name
         (string/replace ":" "+3A+")
         (string/replace "/" "++"))

+ 1 - 1
deps/db/src/logseq/db/common/view.cljs

@@ -9,7 +9,7 @@
             [logseq.common.util :as common-util]
             [logseq.db :as ldb]
             [logseq.db.frontend.class :as db-class]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property.type :as db-property-type]

+ 1 - 1
deps/db/src/logseq/db/frontend/malli_schema.cljs

@@ -5,7 +5,7 @@
             [datascript.core :as d]
             [logseq.db.common.order :as db-order]
             [logseq.db.frontend.class :as db-class]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property.type :as db-property-type]

+ 1 - 1
deps/db/src/logseq/db/sqlite/cli.cljs

@@ -90,7 +90,7 @@
   (let [[_db-sanitized-name db-full-path] (sqlite-common-db/get-db-full-path graphs-dir db-name)
         db (new sqlite db-full-path nil)
         ;; For both desktop and CLI, only file graphs have db-name that indicate their db type
-        schema (if (sqlite-util/local-file-based-graph? db-name)
+        schema (if (sqlite-common-db/local-file-based-graph? db-name)
                  file-schema/schema
                  db-schema/schema)]
     (sqlite-common-db/create-kvs-table! db)

+ 1 - 1
deps/db/src/logseq/db/sqlite/create_graph.cljs

@@ -170,7 +170,7 @@
   (build-initial-classes* db-class/built-in-classes db-ident->properties))
 
 (defn build-initial-views
-  "Builds initial blocks used for storing views. Used by db and file graphs"
+  "Builds initial blocks used for storing views"
   []
   (let [page-id (common-uuid/gen-uuid :builtin-block-uuid common-config/views-page-name)]
     [(sqlite-util/block-with-timestamps

+ 1 - 1
deps/db/src/logseq/db/sqlite/export.cljs

@@ -10,7 +10,7 @@
             [logseq.db.frontend.class :as db-class]
             [logseq.db.frontend.content :as db-content]
             [logseq.db.frontend.db :as db-db]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.sqlite.build :as sqlite-build]

+ 1 - 16
deps/db/src/logseq/db/sqlite/util.cljs

@@ -9,13 +9,10 @@
             [logseq.common.util :as common-util]
             [logseq.common.uuid :as common-uuid]
             [logseq.db.common.order :as db-order]
-            [logseq.db.file-based.schema :as file-schema]
             [logseq.db.frontend.property :as db-property]
-            [logseq.db.frontend.property.type :as db-property-type]
-            [logseq.db.frontend.schema :as db-schema]))
+            [logseq.db.frontend.property.type :as db-property-type]))
 
 (defonce db-version-prefix "logseq_db_")
-(defonce file-version-prefix "logseq_local_")
 
 (def ^:private write-handlers (cljs-bean.transit/writer-handlers))
 (def ^:private read-handlers {})
@@ -59,18 +56,6 @@
   (when graph-name
     (string/starts-with? graph-name db-version-prefix)))
 
-(defn local-file-based-graph?
-  [s]
-  (and (string? s)
-       (string/starts-with? s file-version-prefix)))
-
-(defn get-schema
-  "Returns schema for given repo"
-  [repo]
-  (if (db-based-graph? repo)
-    db-schema/schema
-    file-schema/schema))
-
 (def block-with-timestamps common-util/block-with-timestamps)
 
 (defn build-new-property

+ 1 - 1
deps/db/src/logseq/db/test/helper.cljs

@@ -2,7 +2,7 @@
   "Main ns for providing test fns for DB graphs"
   (:require [datascript.core :as d]
             [datascript.impl.entity :as de]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.schema :as db-schema]
             [logseq.db.sqlite.build :as sqlite-build]

+ 1 - 1
deps/graph-parser/test/logseq/graph_parser/exporter_test.cljs

@@ -10,7 +10,7 @@
             [logseq.common.util.date-time :as date-time-util]
             [logseq.db :as ldb]
             [logseq.db.frontend.content :as db-content]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.malli-schema :as db-malli-schema]
             [logseq.db.frontend.rules :as rules]
             [logseq.db.frontend.validate :as db-validate]

+ 1 - 1
deps/outliner/src/logseq/outliner/pipeline.cljs

@@ -6,7 +6,7 @@
             [logseq.common.util.date-time :as date-time-util]
             [logseq.db :as ldb]
             [logseq.db.frontend.content :as db-content]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.property :as db-property]
             [logseq.outliner.datascript-report :as ds-report]))
 

+ 1 - 1
deps/outliner/src/logseq/outliner/property.cljs

@@ -8,7 +8,7 @@
             [logseq.db :as ldb]
             [logseq.db.common.order :as db-order]
             [logseq.db.frontend.db-ident :as db-ident]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.frontend.malli-schema :as db-malli-schema]
             [logseq.db.frontend.property :as db-property]

+ 1 - 1
deps/outliner/test/logseq/outliner/validate_test.cljs

@@ -1,7 +1,7 @@
 (ns logseq.outliner.validate-test
   (:require [cljs.test :refer [are deftest is testing]]
             [datascript.core :as d]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.test.helper :as db-test]
             [logseq.outliner.validate :as outliner-validate]))
 

+ 1 - 1
deps/publishing/src/logseq/publishing/db.cljs

@@ -3,7 +3,7 @@
   (:require [clojure.set :as set]
             [clojure.string :as string]
             [datascript.core :as d]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.malli-schema :as db-malli-schema]
             [logseq.db.frontend.rules :as rules]))
 

+ 1 - 2
scripts/src/logseq/tasks/dev/db_and_file_graphs.clj

@@ -98,8 +98,7 @@
 
 (defn- validate-multi-graph-fns-not-in-file-or-db
   []
-  ;; TODO: Lint `(db-based-graph?` when db.frontend.entity-plus is split into separate graph contexts
-  (let [multi-graph-fns ["/db-based-graph\\?"
+  (let [multi-graph-fns ["/db-based-graph\\?" "\\(db-based-graph\\?"
                          ;; Use file-entity-util and entity-util when in a single graph context
                          "ldb/whiteboard\\?" "ldb/journal\\?" "ldb/page\\?"]
         res (grep-many multi-graph-fns (into file-graph-paths db-graph-paths))]

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

@@ -240,7 +240,7 @@
          (remove (fn [s] (= s db/unlinked-graphs-dir)))
          (map graph-name->path)
          (map (fn [s]
-                (if (string/starts-with? s sqlite-util/file-version-prefix)
+                (if (string/starts-with? s sqlite-common-db/file-version-prefix)
                   s
                   (str sqlite-util/db-version-prefix s)))))))
 

+ 2 - 2
src/main/frontend/background_tasks.cljs

@@ -2,11 +2,11 @@
   "Some background tasks"
   (:require [frontend.common.missionary :as c.m]
             [frontend.flows :as flows]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [missionary.core :as m]))
 
 (c.m/run-background-task
- :logseq.db.frontend.entity-plus/reset-immutable-entities-cache!
+ :logseq.db.common.entity-plus/reset-immutable-entities-cache!
  (m/reduce
   (fn [_ repo]
     (when (some? repo)

+ 1 - 1
src/main/frontend/common/file/core.cljs

@@ -5,7 +5,7 @@
             [datascript.core :as d]
             [logseq.db :as ldb]
             [logseq.db.frontend.content :as db-content]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.sqlite.util :as sqlite-util]
             [logseq.graph-parser.property :as gp-property]
             [logseq.outliner.tree :as otree]))

+ 1 - 1
src/main/frontend/common/graph_view.cljs

@@ -6,7 +6,7 @@
             [logseq.common.util :as common-util]
             [logseq.db :as ldb]
             [logseq.db.common.property-util :as db-property-util]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.sqlite.create-graph :as sqlite-create-graph]
             [logseq.graph-parser.db :as gp-db]))
 

+ 1 - 1
src/main/frontend/components/block.cljs

@@ -80,7 +80,7 @@
             [logseq.common.util.page-ref :as page-ref]
             [logseq.db :as ldb]
             [logseq.db.frontend.content :as db-content]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.graph-parser.block :as gp-block]
             [logseq.graph-parser.mldoc :as gp-mldoc]
             [logseq.graph-parser.text :as text]

+ 1 - 1
src/main/frontend/db/utils.cljs

@@ -4,7 +4,7 @@
             [frontend.db.conn :as conn]
             [frontend.state :as state]
             [logseq.db.frontend.content :as db-content]
-            [logseq.db.frontend.entity-plus :as entity-plus]))
+            [logseq.db.common.entity-plus :as entity-plus]))
 
 ;; transit serialization
 

+ 1 - 1
src/main/frontend/extensions/fsrs.cljs

@@ -18,7 +18,7 @@
             [frontend.ui :as ui]
             [frontend.util :as util]
             [logseq.db :as ldb]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.shui.ui :as shui]
             [missionary.core :as m]
             [open-spaced-repetition.cljc-fsrs.core :as fsrs.core]

+ 1 - 1
src/main/frontend/handler/editor.cljs

@@ -55,7 +55,7 @@
             [logseq.common.util.page-ref :as page-ref]
             [logseq.db :as ldb]
             [logseq.db.file-based.schema :as file-schema]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.property :as db-property]
             [logseq.graph-parser.block :as gp-block]
             [logseq.graph-parser.mldoc :as gp-mldoc]

+ 1 - 1
src/main/frontend/state.cljs

@@ -21,7 +21,7 @@
             [goog.object :as gobj]
             [logseq.common.config :as common-config]
             [logseq.db :as ldb]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.sqlite.util :as sqlite-util]
             [logseq.shui.dialog.core :as shui-dialog]
             [logseq.shui.hooks :as hooks]

+ 2 - 2
src/main/frontend/worker/db/fix.cljs

@@ -1,11 +1,11 @@
 (ns frontend.worker.db.fix
   "fix db"
   (:require [datascript.core :as d]
-            [logseq.db.sqlite.util :as sqlite-util]))
+            [logseq.db :as ldb]))
 
 (defn check-and-fix-schema!
   [repo conn]
-  (let [schema (sqlite-util/get-schema repo)
+  (let [schema (ldb/get-schema repo)
         db-schema (:schema @conn)
         diffs (->> (keep (fn [[k v]]
                            (let [schema-v (-> (get db-schema k)

+ 2 - 2
src/main/frontend/worker/db_worker.cljs

@@ -37,7 +37,7 @@
             [logseq.db.common.order :as db-order]
             [logseq.db.common.sqlite :as sqlite-common-db]
             [logseq.db.common.view :as db-view]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.schema :as db-schema]
             [logseq.db.sqlite.create-graph :as sqlite-create-graph]
             [logseq.db.sqlite.export :as sqlite-export]
@@ -334,7 +334,7 @@
       (db-migrate/migrate-sqlite-db db)
       (when-not @*publishing? (db-migrate/migrate-sqlite-db client-ops-db))
       (search/create-tables-and-triggers! search-db)
-      (let [schema (sqlite-util/get-schema repo)
+      (let [schema (ldb/get-schema repo)
             conn (sqlite-common-db/get-storage-conn storage schema)
             _ (db-fix/check-and-fix-schema! repo conn)
             _ (when datoms

+ 1 - 1
src/main/frontend/worker/handler/page/db_based/page.cljs

@@ -9,7 +9,7 @@
             [logseq.db.common.order :as db-order]
             [logseq.db.common.property-util :as db-property-util]
             [logseq.db.frontend.class :as db-class]
-            [logseq.db.frontend.entity-plus :as entity-plus]
+            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.entity-util :as entity-util]
             [logseq.db.frontend.malli-schema :as db-malli-schema]
             [logseq.db.frontend.property.build :as db-property-build]

+ 2 - 1
src/main/frontend/worker/pipeline.cljs

@@ -12,6 +12,7 @@
             [logseq.common.util :as common-util]
             [logseq.common.uuid :as common-uuid]
             [logseq.db :as ldb]
+            [logseq.db.common.sqlite :as sqlite-common-db]
             [logseq.db.frontend.validate :as db-validate]
             [logseq.db.sqlite.export :as sqlite-export]
             [logseq.db.sqlite.util :as sqlite-util]
@@ -232,7 +233,7 @@
                                 :db-after (:db-after result)))
                        tx-report)
           {:keys [pages blocks]} (ds-report/get-blocks-and-pages tx-report*)
-          _ (when (sqlite-util/local-file-based-graph? repo)
+          _ (when (sqlite-common-db/local-file-based-graph? repo)
               (let [page-ids (distinct (map :db/id pages))]
                 (doseq [page-id page-ids]
                   (when (d/entity @conn page-id)