Add minor optimizations to data-uri->blob helper

This commit is contained in:
Andrey Antukh 2023-09-19 13:45:56 +02:00 committed by Alonso Torres
parent 4f23852bca
commit 91224e5274

View file

@ -74,14 +74,16 @@
(defn data-uri->blob (defn data-uri->blob
[data-uri] [data-uri]
(let [[mtype b64-data] (str/split data-uri ";base64,") (let [[mtype b64-data] (str/split data-uri ";base64," 2)
mtype (subs mtype (inc (str/index-of mtype ":"))) mtype (subs mtype (inc (str/index-of mtype ":")))
decoded (.atob js/window b64-data) decoded (.atob js/window b64-data)
size (.-length ^js decoded) size (.-length ^js decoded)
content (js/Uint8Array. size)] content (js/Uint8Array. size)]
(doseq [i (range 0 size)] (loop [i 0]
(aset content i (.charCodeAt ^js decoded i))) (when (< i size)
(aset content i (.charCodeAt ^js decoded i))
(recur (inc i))))
(create-blob content mtype))) (create-blob content mtype)))