validate.cljs 1.2 KB

1234567891011121314151617181920212223
  1. (ns frontend.worker.db.validate
  2. "Validate db"
  3. (:require [frontend.worker.shared-service :as shared-service]
  4. [logseq.db.frontend.validate :as db-validate]))
  5. (defn validate-db
  6. [db]
  7. (let [{:keys [errors datom-count entities]} (db-validate/validate-db! db)]
  8. (if errors
  9. (do
  10. (shared-service/broadcast-to-clients! :log [:db-invalid :error
  11. {:msg "Validation errors"
  12. :errors errors}])
  13. (shared-service/broadcast-to-clients! :notification
  14. [(str "Validation detected " (count errors) " invalid block(s). These blocks may be buggy. Attempting to fix invalid blocks. Run validation again to see if they were fixed.")
  15. :warning false]))
  16. (shared-service/broadcast-to-clients! :notification
  17. [(str "Your graph is valid! " (assoc (db-validate/graph-counts db entities) :datoms datom-count))
  18. :success false]))
  19. {:errors errors
  20. :datom-count datom-count
  21. :invalid-entity-ids (distinct (map (fn [e] (:db/id (:entity e))) errors))}))