Files
logseq/src/main/frontend/db/debug.cljs
2023-06-28 13:26:00 +08:00

56 lines
1.7 KiB
Clojure

(ns ^:no-doc frontend.db.debug
(:require [frontend.db.utils :as db-utils]
[frontend.db :as db]
[datascript.core :as d]
[frontend.util :as util]
[frontend.state :as state]))
;; shortcut for query a block with string ref
(defn qb
[string-id]
(db-utils/pull [:block/uuid (uuid string-id)]))
(defn check-left-id-conflicts
[]
(let [db (db/get-db)
blocks (->> (d/datoms db :avet :block/uuid)
(map :v)
(map (fn [id]
(let [e (db-utils/entity [:block/uuid id])]
(if (:block/name e)
nil
{:block/left (:db/id (:block/left e))
:block/parent (:db/id (:block/parent e))}))))
(remove nil?))
count-1 (count blocks)
count-2 (count (distinct blocks))]
(assert (= count-1 count-2) (util/format "Blocks count: %d, repeated blocks count: %d"
count-1
(- count-1 count-2)))))
(defn block-uuid-nil?
[block]
(->>
(concat
[(:block/parent block)
(:block/left block)
(:block/page block)
(:block/namespace block)]
(:block/tags block)
(:block/alias block)
(:block/refs block)
(:block/path-refs block))
(remove nil?)
(some (fn [x]
(and
(vector? x)
(= :block/uuid (first x))
(nil? (second x)))))))
(defn get-all-blocks
[]
(when-let [db (db/get-db)]
(->> (d/datoms db :avet :block/uuid)
(map :e)
db/pull-many)))