This commit is contained in:
Michiel Borkent 2021-05-19 23:48:14 +02:00
parent 0f31e57977
commit de4c3610c9
5 changed files with 44 additions and 24 deletions

View file

@ -15,11 +15,17 @@
([pod-id-or-pod sym args] (invoke pod-id-or-pod sym args {}))
([pod-id-or-pod sym args opts] (jvm/invoke pod-id-or-pod sym args opts)))
(defn add-transit-read-handler! [tag fn]
(jvm/add-transit-read-handler! tag fn))
(defmacro copy-var [name var]
`(do (def ~name ~var)
(let [m# (meta (var ~var))
doc# (:doc m#)
arglists# (:arglists m#)]
(alter-meta! (var ~name) assoc
:arglists arglists#
:doc doc#))))
(defn add-transit-write-handler! [tag fn classes]
(jvm/add-transit-write-handler! tag fn classes))
(defn set-default-transit-write-handler! [tag-fn val-fn]
(jvm/set-default-transit-write-handler! tag-fn val-fn))
#_:clj-kondo/ignore
(do
(copy-var add-transit-read-handler! jvm/add-transit-read-handler!)
(copy-var add-transit-write-handler! jvm/add-transit-write-handler!)
(copy-var set-default-transit-write-handler! jvm/set-default-transit-write-handler!))

View file

@ -69,7 +69,8 @@
(transit/write-handler-map (get @transit-write-handlers *pod-id*))))
;; https://www.cognitect.com/blog/2015/9/10/extending-transit
(defn add-transit-write-handler! [tag fn classes]
(defn add-transit-write-handler!
[classes tag fn]
(let [rh (transit/write-handler tag fn)]
(doseq [class classes]
(swap! transit-write-handlers assoc-in [*pod-id* class] rh)))

View file

@ -71,11 +71,17 @@
([pod-id sym args] (invoke pod-id sym args {}))
([pod-id sym args opts] (impl/invoke-public pod-id sym args opts)))
(defn add-transit-read-handler! [tag fn]
(impl/add-transit-read-handler! tag fn))
(defmacro copy-var [name var]
`(do (def ~name ~var)
(let [m# (meta (var ~var))
doc# (:doc m#)
arglists# (:arglists m#)]
(alter-meta! (var ~name) assoc
:arglists arglists#
:doc doc#))))
(defn add-transit-write-handler! [tag fn classes]
(impl/add-transit-write-handler! tag fn classes))
(defn set-default-transit-write-handler! [tag-fn val-fn]
(impl/set-default-transit-write-handler! tag-fn val-fn))
#_:clj-kondo/ignore
(do
(copy-var add-transit-read-handler! impl/add-transit-read-handler!)
(copy-var add-transit-write-handler! impl/add-transit-write-handler!)
(copy-var set-default-transit-write-handler! impl/set-default-transit-write-handler!))

View file

@ -81,11 +81,17 @@
([pod-id sym args] (invoke pod-id sym args {}))
([pod-id sym args opts] (impl/invoke-public pod-id sym args opts)))
(defn add-transit-read-handler! [tag fn]
(impl/add-transit-read-handler! tag fn))
(defmacro copy-var [name var]
`(do (def ~name ~var)
(let [m# (meta (var ~var))
doc# (:doc m#)
arglists# (:arglists m#)]
(alter-meta! (var ~name) assoc
:arglists arglists#
:doc doc#))))
(defn add-transit-write-handler! [tag fn classes]
(impl/add-transit-write-handler! tag fn classes))
(defn set-default-transit-write-handler! [tag-fn val-fn]
(impl/set-default-transit-write-handler! tag-fn val-fn))
#_:clj-kondo/ignore
(do
(copy-var add-transit-read-handler! impl/add-transit-read-handler!)
(copy-var add-transit-write-handler! impl/add-transit-write-handler!)
(copy-var set-default-transit-write-handler! impl/set-default-transit-write-handler!))

View file

@ -134,8 +134,9 @@
(babashka.pods/add-transit-read-handler! \"local-date-time\"
(fn [s] (java.time.LocalDateTime/parse s)))
(babashka.pods/add-transit-write-handler! \"local-date-time\"
str #{java.time.LocalDateTime})
(babashka.pods/add-transit-write-handler! #{java.time.LocalDateTime}
\"local-date-time\"
str )
(defn local-date-time [x]
(-local-date-time x))