mirror of https://github.com/logseq/logseq
Reuse starting db conn
Also move circular dep hack to ns that both nbb and cljs can usepull/5420/head
parent
3bc2479181
commit
89d73bc178
|
@ -1,13 +1,12 @@
|
|||
(ns frontend.db.conn
|
||||
"Contains db connections."
|
||||
(:require [clojure.string :as string]
|
||||
[frontend.db-schema :as db-schema]
|
||||
[frontend.db.default :as default-db]
|
||||
[frontend.util :as util]
|
||||
[frontend.mobile.util :as mobile-util]
|
||||
[frontend.state :as state]
|
||||
[frontend.config :as config]
|
||||
[logseq.graph-parser.text :as text]
|
||||
[logseq.graph-parser.db :as gp-db]
|
||||
[logseq.graph-parser.util :as gp-util]
|
||||
[datascript.core :as d]))
|
||||
|
||||
|
@ -77,21 +76,12 @@
|
|||
(defn start!
|
||||
([me repo]
|
||||
(start! me repo {}))
|
||||
([me repo {:keys [db-type listen-handler]}]
|
||||
([me repo {:keys [listen-handler]}]
|
||||
(let [db-name (datascript-db repo)
|
||||
db-conn (d/create-conn db-schema/schema)]
|
||||
db-conn (gp-db/start-conn)]
|
||||
(swap! conns assoc db-name db-conn)
|
||||
(d/transact! db-conn [(cond-> {:schema/version db-schema/version}
|
||||
db-type
|
||||
(assoc :db/type db-type))
|
||||
{:block/name "card"
|
||||
:block/original-name "card"
|
||||
:block/uuid (d/squuid)}])
|
||||
(when me
|
||||
(d/transact! db-conn [(me-tx (d/db db-conn) me)]))
|
||||
|
||||
(d/transact! db-conn default-db/built-in-pages)
|
||||
|
||||
(when listen-handler
|
||||
(listen-handler repo)))))
|
||||
|
||||
|
|
|
@ -3,14 +3,9 @@
|
|||
[frontend.format.adoc :refer [->AdocMode]]
|
||||
[frontend.format.protocol :as protocol]
|
||||
[logseq.graph-parser.mldoc :as gp-mldoc]
|
||||
[logseq.graph-parser.text :as text]
|
||||
[logseq.graph-parser.util :as gp-util]
|
||||
[clojure.string :as string]))
|
||||
|
||||
;; TODO: Properly fix this circular dependency:
|
||||
;; mldoc/->edn > text/parse-property > mldoc/link? ->mldoc/inline->edn + mldoc/default-config
|
||||
(set! gp-mldoc/parse-property text/parse-property)
|
||||
|
||||
(defonce mldoc-record (->MldocMode))
|
||||
(defonce adoc-record (->AdocMode))
|
||||
|
||||
|
|
|
@ -60,14 +60,6 @@
|
|||
(assoc :file/created-at (date-time-util/time-ms)))])]
|
||||
(d/transact! db (gp-util/remove-nils tx) (when new-graph? {:new-graph? true}))))
|
||||
|
||||
(defn init-db
|
||||
[]
|
||||
;; TODO: Reuse code from frontend
|
||||
(let [conn (d/create-conn db-schema/schema)]
|
||||
(d/transact! conn [{:schema/version db-schema/version}])
|
||||
(d/transact! conn default-db/built-in-pages)
|
||||
conn))
|
||||
|
||||
(defn parse
|
||||
[db files]
|
||||
(doseq [{:file/keys [path content]} files]
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
(ns logseq.graph-parser.db
|
||||
(:require [frontend.db.default :as default-db]
|
||||
[frontend.db-schema :as db-schema]
|
||||
[datascript.core :as d]))
|
||||
|
||||
(defn start-conn
|
||||
"Create datascript conn with schema and default data"
|
||||
[]
|
||||
(let [db-conn (d/create-conn db-schema/schema)]
|
||||
(d/transact! db-conn [(cond-> {:schema/version db-schema/version}
|
||||
;; TODO: Handle this
|
||||
#_db-type
|
||||
#_(assoc :db/type db-type))
|
||||
{:block/name "card"
|
||||
:block/original-name "card"
|
||||
:block/uuid (d/squuid)}])
|
||||
(d/transact! db-conn default-db/built-in-pages)
|
||||
db-conn))
|
|
@ -187,3 +187,10 @@
|
|||
(defn extract-all-block-refs
|
||||
[content]
|
||||
(map second (re-seq #"\(\(([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})\)\)" content)))
|
||||
|
||||
#?(:org.babashka/nbb
|
||||
(alter-var-root #'gp-mldoc/parse-property (constantly text/parse-property))
|
||||
:default
|
||||
;; TODO: Properly fix this circular dependency:
|
||||
;; mldoc/->edn > text/parse-property > mldoc/link? ->mldoc/inline->edn + mldoc/default-config
|
||||
(set! gp-mldoc/parse-property text/parse-property))
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
(ns logseq.graph-parser.nbb-test-runner
|
||||
"Nbb tests for graph-parser"
|
||||
(:require [cljs.test :as t]
|
||||
[logseq.graph-parser.mldoc :as gp-mldoc]
|
||||
[logseq.graph-parser.text :as text]
|
||||
[logseq.graph-parser.text-test]
|
||||
[logseq.graph-parser.mldoc-test]
|
||||
[logseq.graph-parser.block-test]
|
||||
|
@ -16,10 +14,6 @@
|
|||
|
||||
;; run this function with: nbb-logseq -m logseq.test.nbb-test-runner/run-tests
|
||||
(defn run-tests []
|
||||
;; This hack is the same as the one in frontend.format. This has to be in an nbb only
|
||||
;; ns since alter-var-root doesn't exist in cljs and nbb doesn't support set! yet
|
||||
#_:clj-kondo/ignore
|
||||
(alter-var-root #'gp-mldoc/parse-property (constantly text/parse-property))
|
||||
(t/run-tests 'logseq.graph-parser.mldoc-test
|
||||
'logseq.graph-parser.text-test
|
||||
'logseq.graph-parser.property-test
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"TODO: Should I reuse repo-test or split it?"
|
||||
(:require [cljs.test :refer [deftest is testing]]
|
||||
[logseq.graph-parser :as graph-parser]
|
||||
[logseq.graph-parser.db :as gp-db]
|
||||
[frontend.test.docs-graph-helper :as docs-graph-helper]
|
||||
[datascript.core :as d]))
|
||||
|
||||
|
@ -35,7 +36,7 @@
|
|||
(let [graph-dir "src/test/docs"
|
||||
_ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir)
|
||||
files (docs-graph-helper/build-graph-files graph-dir)
|
||||
conn (graph-parser/init-db)
|
||||
conn (gp-db/start-conn)
|
||||
; _ (repo-handler/parse-files-and-load-to-db! test-helper/test-db files {:re-render? false})
|
||||
_ (graph-parser/parse conn files)
|
||||
db @conn]
|
||||
|
|
Loading…
Reference in New Issue