Skip to content

Commit af5c266

Browse files
committed
Finishing changes on print namespace
1 parent 896a59d commit af5c266

File tree

1 file changed

+35
-18
lines changed

1 file changed

+35
-18
lines changed

src/lambdaisland/deep_diff/printer.cljc

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55
[puget.dispatch]
66
[puget.printer :as puget]
77
[arrangement.core]
8-
[lambdaisland.deep-diff.diff :as diff])
8+
[lambdaisland.deep-diff.diff :as diff]
9+
#?@(:cljs
10+
[[cljs-time.coerce :refer [from-date]]
11+
[cljs-time.format :refer [formatter unparse]]
12+
[goog.object :as gobj]]))
913
#?(:clj (:import (java.text SimpleDateFormat)
1014
(java.util TimeZone)
11-
(java.sql Timestamp)))
12-
)
15+
(java.sql Timestamp))))
1316

1417
(defn print-deletion [printer expr]
1518
(let [no-color (assoc printer :print-color false)]
@@ -48,19 +51,28 @@
4851
(def ^:private print-date
4952
(puget/tagged-handler
5053
'inst
51-
#(.format ^SimpleDateFormat (.get thread-local-utc-date-format) %)))
54+
#?(:clj #(.format ^SimpleDateFormat (.get thread-local-utc-date-format) %)
55+
:cljs (fun [input-date]
56+
(let [dt (from-date input-date)]
57+
(cljs-time.format/unparse thread-local-utc-date-format dt))))))
5258

5359
(def ^:private ^ThreadLocal thread-local-utc-timestamp-format
5460
(proxy [ThreadLocal] []
5561
(initialValue []
56-
(doto (SimpleDateFormat. "yyyy-MM-dd'T'HH:mm:ss")
57-
(.setTimeZone (TimeZone/getTimeZone "GMT"))))))
62+
;; (doto (SimpleDateFormat. "yyyy-MM-dd'T'HH:mm:ss")
63+
;; (.setTimeZone (TimeZone/getTimeZone "GMT"))))))
64+
#?(:clj (doto (SimpleDateFormat. "yyyy-MM-dd'T'HH:mm:ss")
65+
(.setTimeZone (TimeZone/getTimeZone "GMT")))
66+
:cljs (doto (cljs-time.format/formatter "yyyy-MM-dd'T'HH:mm:ss"))))))
5867

5968
(def ^:private print-timestamp
6069
(puget/tagged-handler
6170
'inst
62-
#(str (.format ^SimpleDateFormat (.get thread-local-utc-timestamp-format) %)
63-
(format ".%09d-00:00" (.getNanos ^Timestamp %)))))
71+
#?(:clj #(str (.format ^SimpleDateFormat (.get thread-local-utc-timestamp-format) %)
72+
(format ".%09d-00:00" (.getNanos ^Timestamp %)))
73+
:cljs (fn [input-date]
74+
(let [dt (from-date input-date)]
75+
(cljs-time.format/unparse thread-local-utc-timestamp-format dt))))))
6476

6577
(def ^:private print-calendar
6678
(puget/tagged-handler
@@ -81,13 +93,16 @@
8193
'lambdaisland.deep_diff.diff.Mismatch
8294
print-mismatch
8395

84-
'clojure.lang.PersistentArrayMap
96+
#?(:clj 'clojure.lang.PersistentArrayMap
97+
:cljs 'cljs.core/PersistentArrayMap)
8598
map-handler
8699

87-
'clojure.lang.PersistentHashMap
100+
#?(:clj 'clojure.lang.PersistentHashMap
101+
:cljs cljs.core/PersistentHashMap)
88102
map-handler
89103

90-
'clojure.lang.MapEntry
104+
#?(:clj 'clojure.lang.MapEntry
105+
:cljs 'cljs.core/MapEntry)
91106
(fn [printer value]
92107
(let [k (key value)
93108
v (val value)]
@@ -111,17 +126,19 @@
111126
(if (coll? v) (:map-coll-separator printer) " ")
112127
(puget/format-doc printer v)]))))
113128

114-
'java.util.Date
129+
#?(:clj 'java.util.Date
130+
:cljs 'js/Date)
115131
print-date
116132

117-
'java.util.GregorianCalendar
118-
print-calendar
133+
;; 'java.util.GregorianCalendar
134+
;; print-calendar
119135

120-
'java.sql.Timestamp
121-
print-timestamp
136+
;; 'java.sql.Timestamp
137+
;; print-timestamp
122138

123-
'java.util.UUID
124-
(puget/tagged-handler 'uuid str)})
139+
#?(:clj java.util.UUID
140+
:cljs uuid?)
141+
(tagged-handler 'uuid str)}
125142

126143
(defn- print-handler-resolver [extra-handlers]
127144
(fn [^Class klz]

0 commit comments

Comments
 (0)