From 691b8866efb5cdc581c692eb49e7c557750ba2d6 Mon Sep 17 00:00:00 2001 From: Gabriel Horner Date: Mon, 28 Apr 2025 11:22:17 -0400 Subject: [PATCH] refactor: mv another common ns out of db dir Allows for more improved separate linting --- .clj-kondo/config.edn | 4 ++-- deps/db/.carve/config.edn | 2 +- deps/db/.clj-kondo/config.edn | 2 +- deps/db/script/diff_graphs.cljs | 2 +- deps/db/script/dump_datoms.cljs | 2 +- deps/db/script/export_graph.cljs | 2 +- deps/db/script/query.cljs | 2 +- deps/db/script/validate_db.cljs | 2 +- .../db/{sqlite/cli.cljs => common/sqlite_cli.cljs} | 2 +- deps/db/src/logseq/db/file_based/schema.cljs | 5 ++--- deps/db/src/logseq/db/frontend/schema.cljs | 2 +- deps/db/test/logseq/db/common/sqlite_test.cljs | 2 +- deps/outliner/script/transact.cljs | 2 +- deps/outliner/src/logseq/outliner/cli.cljs | 2 +- deps/publishing/script/publishing.cljs | 2 +- scripts/src/logseq/tasks/dev/db_and_file_graphs.clj | 9 +++++++-- 16 files changed, 24 insertions(+), 20 deletions(-) rename deps/db/src/logseq/db/{sqlite/cli.cljs => common/sqlite_cli.cljs} (99%) diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index e04c0bf9ec..41ad184d53 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -9,7 +9,7 @@ all-frontend {:linters {:discouraged-namespace - {logseq.db.sqlite.cli {:message "frontend should not depend on CLI namespace with sqlite3 dependency"} + {logseq.db.common.sqlite-cli {:message "frontend should not depend on CLI namespace with sqlite3 dependency"} logseq.outliner.cli {:message "frontend should not depend on CLI namespace with sqlite3 dependency"}}}} ;; false positive with match/match and _ @@ -195,7 +195,7 @@ logseq.db.frontend.schema db-schema logseq.db.frontend.validate db-validate logseq.db.sqlite.build sqlite-build - logseq.db.sqlite.cli sqlite-cli + logseq.db.common.sqlite-cli sqlite-cli logseq.db.sqlite.create-graph sqlite-create-graph logseq.db.sqlite.export sqlite-export logseq.db.sqlite.util sqlite-util diff --git a/deps/db/.carve/config.edn b/deps/db/.carve/config.edn index 7dc37a66f3..2147a2986d 100644 --- a/deps/db/.carve/config.edn +++ b/deps/db/.carve/config.edn @@ -1,7 +1,7 @@ {:paths ["src"] :api-namespaces [logseq.db.common.sqlite logseq.db.sqlite.util - logseq.db.sqlite.cli + logseq.db.common.sqlite-cli logseq.db.frontend.property logseq.db.frontend.property.build logseq.db.common.property-util diff --git a/deps/db/.clj-kondo/config.edn b/deps/db/.clj-kondo/config.edn index b8fd64674c..9ebc4fce94 100644 --- a/deps/db/.clj-kondo/config.edn +++ b/deps/db/.clj-kondo/config.edn @@ -30,7 +30,7 @@ logseq.db.frontend.schema db-schema logseq.db.frontend.validate db-validate logseq.db.sqlite.build sqlite-build - logseq.db.sqlite.cli sqlite-cli + logseq.db.common.sqlite-cli sqlite-cli logseq.db.sqlite.create-graph sqlite-create-graph logseq.db.sqlite.export sqlite-export logseq.db.sqlite.util sqlite-util}}} diff --git a/deps/db/script/diff_graphs.cljs b/deps/db/script/diff_graphs.cljs index a2d84f3275..ac5726d06b 100644 --- a/deps/db/script/diff_graphs.cljs +++ b/deps/db/script/diff_graphs.cljs @@ -7,7 +7,7 @@ [clojure.pprint :as pprint] [clojure.string :as string] [logseq.common.config :as common-config] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [logseq.db.sqlite.export :as sqlite-export] [nbb.core :as nbb])) diff --git a/deps/db/script/dump_datoms.cljs b/deps/db/script/dump_datoms.cljs index fd262718d3..1b0a0b5fa0 100644 --- a/deps/db/script/dump_datoms.cljs +++ b/deps/db/script/dump_datoms.cljs @@ -7,7 +7,7 @@ ["path" :as path] [clojure.pprint :as pprint] [datascript.core :as d] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [nbb.core :as nbb])) (defn read-graph diff --git a/deps/db/script/export_graph.cljs b/deps/db/script/export_graph.cljs index c9efdac964..b04f2c4409 100644 --- a/deps/db/script/export_graph.cljs +++ b/deps/db/script/export_graph.cljs @@ -7,7 +7,7 @@ [clojure.edn :as edn] [clojure.pprint :as pprint] [clojure.string :as string] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [logseq.db.sqlite.export :as sqlite-export] [nbb.core :as nbb])) diff --git a/deps/db/script/query.cljs b/deps/db/script/query.cljs index 73d81aa6f1..0a5d30ace1 100644 --- a/deps/db/script/query.cljs +++ b/deps/db/script/query.cljs @@ -11,7 +11,7 @@ [clojure.string :as string] [datascript.core :as d] [logseq.db.frontend.rules :as rules] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [nbb.core :as nbb])) (defn- sh diff --git a/deps/db/script/validate_db.cljs b/deps/db/script/validate_db.cljs index 61e2c179d5..d6069f7786 100644 --- a/deps/db/script/validate_db.cljs +++ b/deps/db/script/validate_db.cljs @@ -9,7 +9,7 @@ [datascript.core :as d] [logseq.db.frontend.malli-schema :as db-malli-schema] [logseq.db.frontend.validate :as db-validate] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [malli.core :as m] [malli.error :as me] [nbb.core :as nbb])) diff --git a/deps/db/src/logseq/db/sqlite/cli.cljs b/deps/db/src/logseq/db/common/sqlite_cli.cljs similarity index 99% rename from deps/db/src/logseq/db/sqlite/cli.cljs rename to deps/db/src/logseq/db/common/sqlite_cli.cljs index 6e47cd7bcb..29aef5c3e1 100644 --- a/deps/db/src/logseq/db/sqlite/cli.cljs +++ b/deps/db/src/logseq/db/common/sqlite_cli.cljs @@ -1,4 +1,4 @@ -(ns ^:node-only logseq.db.sqlite.cli +(ns ^:node-only logseq.db.common.sqlite-cli "Primary ns to interact with DB files for DB and file graphs with node.js based CLIs" (:require ["better-sqlite3" :as sqlite3] ["fs" :as fs] diff --git a/deps/db/src/logseq/db/file_based/schema.cljs b/deps/db/src/logseq/db/file_based/schema.cljs index 00e3beb83e..32da7a81a5 100644 --- a/deps/db/src/logseq/db/file_based/schema.cljs +++ b/deps/db/src/logseq/db/file_based/schema.cljs @@ -32,9 +32,8 @@ :block/path-refs {:db/valueType :db.type/ref :db/cardinality :db.cardinality/many} - ;; tags are structured classes - :block/tags {:db/valueType :db.type/ref - :db/cardinality :db.cardinality/many} + :block/tags {:db/valueType :db.type/ref + :db/cardinality :db.cardinality/many} ;; which block this block links to, used for tag, embeds :block/link {:db/valueType :db.type/ref diff --git a/deps/db/src/logseq/db/frontend/schema.cljs b/deps/db/src/logseq/db/frontend/schema.cljs index f9cbc16f90..5a2588faa7 100644 --- a/deps/db/src/logseq/db/frontend/schema.cljs +++ b/deps/db/src/logseq/db/frontend/schema.cljs @@ -61,7 +61,7 @@ :else (throw (ex-info "Not a schema-version" {:data schema-version})))) (def schema - "Schema for DB graphs" + "Schema for DB graphs. :block/tags are classes in this schema" (merge (apply dissoc file-schema/schema file-schema/file-only-attributes) {:block/name {:db/index true} ; remove db/unique for :block/name diff --git a/deps/db/test/logseq/db/common/sqlite_test.cljs b/deps/db/test/logseq/db/common/sqlite_test.cljs index c4a38ef0ff..1b1bb57adc 100644 --- a/deps/db/test/logseq/db/common/sqlite_test.cljs +++ b/deps/db/test/logseq/db/common/sqlite_test.cljs @@ -7,7 +7,7 @@ [datascript.core :as d] [logseq.db.common.sqlite :as sqlite-common-db] [logseq.db.sqlite.build :as sqlite-build] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [logseq.db.sqlite.create-graph :as sqlite-create-graph] [logseq.db.test.helper :as db-test])) diff --git a/deps/outliner/script/transact.cljs b/deps/outliner/script/transact.cljs index ed3f840bdc..15a38a59a4 100644 --- a/deps/outliner/script/transact.cljs +++ b/deps/outliner/script/transact.cljs @@ -6,7 +6,7 @@ [clojure.string :as string] [datascript.core :as d] [logseq.db.frontend.rules :as rules] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [logseq.outliner.db-pipeline :as db-pipeline] [nbb.core :as nbb])) diff --git a/deps/outliner/src/logseq/outliner/cli.cljs b/deps/outliner/src/logseq/outliner/cli.cljs index 5133655d80..dcd05e274a 100644 --- a/deps/outliner/src/logseq/outliner/cli.cljs +++ b/deps/outliner/src/logseq/outliner/cli.cljs @@ -4,7 +4,7 @@ [datascript.core :as d] [logseq.db.sqlite.create-graph :as sqlite-create-graph] [logseq.db.sqlite.build :as sqlite-build] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [logseq.outliner.db-pipeline :as db-pipeline] ["fs" :as fs] ["path" :as node-path])) diff --git a/deps/publishing/script/publishing.cljs b/deps/publishing/script/publishing.cljs index c640687ff7..4f57b6351b 100644 --- a/deps/publishing/script/publishing.cljs +++ b/deps/publishing/script/publishing.cljs @@ -4,7 +4,7 @@ ["path" :as node-path] [clojure.edn :as edn] [datascript.core :as d] - [logseq.db.sqlite.cli :as sqlite-cli] + [logseq.db.common.sqlite-cli :as sqlite-cli] [logseq.db.sqlite.util :as sqlite-util] [logseq.graph-parser.cli :as gp-cli] [logseq.publishing :as publishing] diff --git a/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj b/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj index eafd63752e..f2d208e248 100644 --- a/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj +++ b/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj @@ -61,7 +61,8 @@ (def file-graph-paths "Paths _only_ for file graphs" - ["deps/graph-parser/src/logseq/graph_parser/db.cljs" + ["deps/db/src/logseq/db/file_based" + "deps/graph-parser/src/logseq/graph_parser/db.cljs" "deps/graph-parser/src/logseq/graph_parser/extract.cljc" "deps/graph-parser/src/logseq/graph_parser/property.cljs" "deps/graph-parser/src/logseq/graph_parser.cljs" @@ -119,12 +120,16 @@ "block/properties :" ;; anything org mode except for org.babashka or urls like schema.org "[^\\.]org[^\\.]" + "file-based" "#+BEGIN_" "#+END_" "pre-block"])) ;; For now use the whole code line. If this is too brittle can make this smaller allowed-exceptions #{":block/pre-block? :block/scheduled :block/deadline :block/type :block/name :block/marker" "(dissoc :block/format))]" + ;; TODO: Mv these 2 file-based ns out of db files + "(:require [logseq.db.file-based.rules :as file-rules]))" + "[logseq.db.file-based.schema :as file-schema]))" ;; The next 3 are from components.property.value "{:block/name page-title})" "(when-not (db/get-page journal)" @@ -158,7 +163,7 @@ (let [db-concepts ;; from logseq.db.frontend.schema ["closed-value" "class/properties" "classes" "property/parent" - "logseq.property" "logseq.class"] + "logseq.property" "logseq.class" "db-based"] res (grep-many db-concepts file-graph-paths)] (when-not (and (= 1 (:exit res)) (= "" (:out res))) (println "The following files should not have contained db specific concepts:")