basically luminus makes use of cljs-time ( parse ) for transit support. now doing so is clearly a performance problem and i have also found now the following related issue on github:
in the issue they are mentioning:
(goog.date/fromIsoString iso-string)
which is already much better, but i feel like it should be easy enough to do even better than that, since one should be able to exploit the fact that one is in complete control over / has complete knowledge of the string-format one has to parse… having said that… at the moment i do not know if i am missing something here… and / or how one could try go about doing that… and / or if it would even be worth it…
any pointers / suggestions?
p.s. yesterday i already wrote about this… i also made a suggestion ( clearly wrong )… and so i noticed it after rereading… and deleted that post… so here is my altered suggestion…
(defn specific-iso-string-to-date-obj [iso-string]
(let [yyyy (js/parseInt (subs iso-string 0 4))
MM (dec (js/parseInt (subs iso-string 5 7)))
dd (js/parseInt (subs iso-string 8 10))
HH (js/parseInt (subs iso-string 11 13))
mm (js/parseInt (subs iso-string 14 16))
ss (js/parseInt (subs iso-string 17 19))
sss (js/parseInt (subs iso-string 20 23))]
(new goog.date.DateTime
yyyy
MM
dd
HH
mm
ss
sss)))
probably wrong again … but… maybe this could be a starting point?