ClojureScript не пытается сериализовать JS объекты с конструктором, за исключением некоторых исключений, таких как js/Date
. В случае js/Error
имеет смысл сначала спросить: как бы это было решено в мире JS? Один ответ доступен здесь: { ссылка }
(.stringify js/JSON (.getOwnPropertyNames js/Object err))
Если вам нужно, чтобы ошибка была сериализована не как JSON, а как EDN, вам просто нужно перебрать собственную ошибку Назовите свойства сами и заполните структуру данных. Что-то вроде
(defn err->edn [e]
(into {}
(map (fn [k]
[(keyword k) (js->clj (gobject/get e k))]))
(.getOwnPropertyNames js/Object e)))
, где gobject
требуется как [goog.object :as gobject]
.