|
5 | 5 | [puget.dispatch] |
6 | 6 | [puget.printer :as puget] |
7 | 7 | [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]])) |
9 | 13 | #?(:clj (:import (java.text SimpleDateFormat) |
10 | 14 | (java.util TimeZone) |
11 | | - (java.sql Timestamp))) |
12 | | - ) |
| 15 | + (java.sql Timestamp)))) |
13 | 16 |
|
14 | 17 | (defn print-deletion [printer expr] |
15 | 18 | (let [no-color (assoc printer :print-color false)] |
|
48 | 51 | (def ^:private print-date |
49 | 52 | (puget/tagged-handler |
50 | 53 | '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)))))) |
52 | 58 |
|
53 | 59 | (def ^:private ^ThreadLocal thread-local-utc-timestamp-format |
54 | 60 | (proxy [ThreadLocal] [] |
55 | 61 | (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")))))) |
58 | 67 |
|
59 | 68 | (def ^:private print-timestamp |
60 | 69 | (puget/tagged-handler |
61 | 70 | '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)))))) |
64 | 76 |
|
65 | 77 | (def ^:private print-calendar |
66 | 78 | (puget/tagged-handler |
|
81 | 93 | 'lambdaisland.deep_diff.diff.Mismatch |
82 | 94 | print-mismatch |
83 | 95 |
|
84 | | - 'clojure.lang.PersistentArrayMap |
| 96 | + #?(:clj 'clojure.lang.PersistentArrayMap |
| 97 | + :cljs 'cljs.core/PersistentArrayMap) |
85 | 98 | map-handler |
86 | 99 |
|
87 | | - 'clojure.lang.PersistentHashMap |
| 100 | + #?(:clj 'clojure.lang.PersistentHashMap |
| 101 | + :cljs cljs.core/PersistentHashMap) |
88 | 102 | map-handler |
89 | 103 |
|
90 | | - 'clojure.lang.MapEntry |
| 104 | + #?(:clj 'clojure.lang.MapEntry |
| 105 | + :cljs 'cljs.core/MapEntry) |
91 | 106 | (fn [printer value] |
92 | 107 | (let [k (key value) |
93 | 108 | v (val value)] |
|
111 | 126 | (if (coll? v) (:map-coll-separator printer) " ") |
112 | 127 | (puget/format-doc printer v)])))) |
113 | 128 |
|
114 | | - 'java.util.Date |
| 129 | + #?(:clj 'java.util.Date |
| 130 | + :cljs 'js/Date) |
115 | 131 | print-date |
116 | 132 |
|
117 | | - 'java.util.GregorianCalendar |
118 | | - print-calendar |
| 133 | + ;; 'java.util.GregorianCalendar |
| 134 | + ;; print-calendar |
119 | 135 |
|
120 | | - 'java.sql.Timestamp |
121 | | - print-timestamp |
| 136 | + ;; 'java.sql.Timestamp |
| 137 | + ;; print-timestamp |
122 | 138 |
|
123 | | - 'java.util.UUID |
124 | | - (puget/tagged-handler 'uuid str)}) |
| 139 | + #?(:clj java.util.UUID |
| 140 | + :cljs uuid?) |
| 141 | + (tagged-handler 'uuid str)} |
125 | 142 |
|
126 | 143 | (defn- print-handler-resolver [extra-handlers] |
127 | 144 | (fn [^Class klz] |
|
0 commit comments