mirror of https://github.com/logseq/logseq
fix(rtc): block/schema from remote
parent
683e90abf6
commit
4c64fd5a4b
|
@ -5,14 +5,24 @@
|
||||||
[malli.transform :as mt]))
|
[malli.transform :as mt]))
|
||||||
|
|
||||||
|
|
||||||
|
(def block-schema-schema
|
||||||
|
[:map {:closed false}
|
||||||
|
[:type :keyword]
|
||||||
|
[:cardinality {:optional true} [:enum :one :many]]
|
||||||
|
[:hide? {:optional true} :boolean]])
|
||||||
|
|
||||||
|
(def block-schema-decoder (m/decoder block-schema-schema mt/string-transformer))
|
||||||
|
|
||||||
|
|
||||||
(def general-attrs-schema-coll
|
(def general-attrs-schema-coll
|
||||||
[[:updated-at {:optional true} :int]
|
[[:updated-at {:optional true} :int]
|
||||||
[:created-at {:optional true} :int]
|
[:created-at {:optional true} :int]
|
||||||
[:alias {:optional true} [:maybe [:sequential :uuid]]]
|
[:alias {:optional true} [:maybe [:sequential :uuid]]]
|
||||||
[:type {:optional true} [:maybe [:sequential :string]]]
|
[:type {:optional true} [:maybe [:sequential :string]]]
|
||||||
[:schema {:optional true} [:maybe [:map {:closed false}]]]
|
[:schema {:optional true} [:maybe block-schema-schema]]
|
||||||
[:tags {:optional true} [:maybe [:sequential :uuid]]]
|
[:tags {:optional true} [:maybe [:sequential :uuid]]]
|
||||||
[:properties {:optional true} [:maybe [:map-of :uuid :any]]]])
|
[:properties {:optional true} [:maybe :string ; transit-json-string
|
||||||
|
]]])
|
||||||
|
|
||||||
(def general-attr-set
|
(def general-attr-set
|
||||||
(into #{} (map first) general-attrs-schema-coll))
|
(into #{} (map first) general-attrs-schema-coll))
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
[logseq.db.schema :as db-schema]
|
[logseq.db.schema :as db-schema]
|
||||||
[frontend.persist-db :as persist-db]
|
[frontend.persist-db :as persist-db]
|
||||||
[frontend.db.rtc.op :as op]
|
[frontend.db.rtc.op :as op]
|
||||||
[logseq.outliner.pipeline :as outliner-pipeline]))
|
[logseq.outliner.pipeline :as outliner-pipeline]
|
||||||
|
[cljs.reader :as edn]
|
||||||
|
[frontend.db.rtc.const :as rtc-const]))
|
||||||
|
|
||||||
|
|
||||||
(defn- export-as-blocks
|
(defn- export-as-blocks
|
||||||
|
@ -68,14 +70,18 @@
|
||||||
block-left (:db/id (:block/left block))
|
block-left (:db/id (:block/left block))
|
||||||
block-alias (map :db/id (:block/alias block))
|
block-alias (map :db/id (:block/alias block))
|
||||||
block-tags (map :db/id (:block/tags block))
|
block-tags (map :db/id (:block/tags block))
|
||||||
block-type (keep (comp block-type-ident->str :db/ident) (:block/type block))]
|
block-type (keep (comp block-type-ident->str :db/ident) (:block/type block))
|
||||||
;; TODO: :block/tags :block/type
|
block-schema (some->> (:block/schema block)
|
||||||
|
edn/read-string
|
||||||
|
rtc-const/block-schema-decoder)]
|
||||||
|
;; TODO: block/properties
|
||||||
(cond-> (assoc block :db/id (str db-id))
|
(cond-> (assoc block :db/id (str db-id))
|
||||||
block-parent (assoc :block/parent (str block-parent))
|
block-parent (assoc :block/parent (str block-parent))
|
||||||
block-left (assoc :block/left (str block-left))
|
block-left (assoc :block/left (str block-left))
|
||||||
(seq block-alias) (assoc :block/alias (map str block-alias))
|
(seq block-alias) (assoc :block/alias (map str block-alias))
|
||||||
(seq block-tags) (assoc :block/tags (map str block-tags))
|
(seq block-tags) (assoc :block/tags (map str block-tags))
|
||||||
(seq block-type) (assoc :block/type block-type))))
|
(seq block-type) (assoc :block/type block-type)
|
||||||
|
block-schema (assoc :block/schema block-schema))))
|
||||||
blocks))
|
blocks))
|
||||||
|
|
||||||
(def page-of-block
|
(def page-of-block
|
||||||
|
|
Loading…
Reference in New Issue