From c7e26a671ee415df6e73f51a40cacda0dc6d98b8 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Tue, 3 Dec 2024 14:56:08 +0800 Subject: [PATCH] fix: schema validate --- .../src/logseq/db/frontend/entity_util.cljs | 3 +- .../src/logseq/db/frontend/malli_schema.cljs | 44 ++++++++++--------- deps/db/src/logseq/db/frontend/schema.cljs | 3 +- deps/db/src/logseq/db/frontend/validate.cljs | 7 +-- 4 files changed, 27 insertions(+), 30 deletions(-) diff --git a/deps/db/src/logseq/db/frontend/entity_util.cljs b/deps/db/src/logseq/db/frontend/entity_util.cljs index ac95d41a6d..0c6db8c674 100644 --- a/deps/db/src/logseq/db/frontend/entity_util.cljs +++ b/deps/db/src/logseq/db/frontend/entity_util.cljs @@ -23,7 +23,8 @@ (defn class? [entity] - (has-tag? entity :logseq.class/Tag)) + (or (= (:db/ident entity) :logseq.class/Tag) + (has-tag? entity :logseq.class/Tag))) (defn property? [entity] diff --git a/deps/db/src/logseq/db/frontend/malli_schema.cljs b/deps/db/src/logseq/db/frontend/malli_schema.cljs index 1bcd42522a..8d95b7d5fa 100644 --- a/deps/db/src/logseq/db/frontend/malli_schema.cljs +++ b/deps/db/src/logseq/db/frontend/malli_schema.cljs @@ -434,27 +434,29 @@ (into [:multi {:dispatch (fn [d] ;; order matters as some block types are a subset of others e.g. :whiteboard - (cond - (entity-util/property? d) - :property - (entity-util/class? d) - :class - (entity-util/hidden? d) - :hidden - (entity-util/whiteboard? d) - :normal-page - (entity-util/page? d) - :normal-page - (entity-util/asset? d) - :asset-block - (:file/path d) - :file-block - (:block/uuid d) - :block - (= (:db/ident d) :logseq.property/empty-placeholder) - :property-value-placeholder - (:db/ident d) - :db-ident-key-value))}] + (let [db *db-for-validate-fns* + d (if (:block/uuid d) (d/entity db [:block/uuid (:block/uuid d)]) d)] + (cond + (entity-util/property? d) + :property + (entity-util/class? d) + :class + (entity-util/hidden? d) + :hidden + (entity-util/whiteboard? d) + :normal-page + (entity-util/page? d) + :normal-page + (entity-util/asset? d) + :asset-block + (:file/path d) + :file-block + (:block/uuid d) + :block + (= (:db/ident d) :logseq.property/empty-placeholder) + :property-value-placeholder + (:db/ident d) + :db-ident-key-value)))}] {:property property-page :class class-page :hidden hidden-page diff --git a/deps/db/src/logseq/db/frontend/schema.cljs b/deps/db/src/logseq/db/frontend/schema.cljs index 7004a55668..4914eb3a16 100644 --- a/deps/db/src/logseq/db/frontend/schema.cljs +++ b/deps/db/src/logseq/db/frontend/schema.cljs @@ -112,8 +112,7 @@ :block/namespace :block/properties-text-values :block/pre-block? :recent/pages :block/file :block/properties :block/properties-order :block/repeated? :block/deadline :block/scheduled :block/priority :block/marker :block/macros - ;; :block/type - ) + :block/type) {:block/name {:db/index true} ; remove db/unique for :block/name ;; closed value :block/closed-value-property {:db/valueType :db.type/ref diff --git a/deps/db/src/logseq/db/frontend/validate.cljs b/deps/db/src/logseq/db/frontend/validate.cljs index 487db90d3b..0acabff1ac 100644 --- a/deps/db/src/logseq/db/frontend/validate.cljs +++ b/deps/db/src/logseq/db/frontend/validate.cljs @@ -41,13 +41,8 @@ (let [explainer (get-schema-explainer (:closed-schema? validate-options))] (js/console.error "Invalid datascript entities detected amongst changed entity ids:" changed-ids) (doseq [m invalid-ent-maps] - (prn {:entity-map m - :errors (me/humanize (explainer [m]))}) - ;; FIXME: pprint fails sometime - ;; (pprint/pprint {;; :entity-map (map #(into {} %) m) - ;; :errors (me/humanize (m/explain db-schema [m]))}) - ) + :errors (me/humanize (explainer [m]))})) false) true)))))