diff --git a/src/uxbox/util/zip.cljs b/src/uxbox/util/zip.cljs new file mode 100644 index 000000000..2c2a6791a --- /dev/null +++ b/src/uxbox/util/zip.cljs @@ -0,0 +1,24 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) 2016 Andrey Antukh + +(ns uxbox.util.zip + "Helpers for make zip file (using jszip)." + (:require [vendor.jszip] + [promesa.core :as p])) + +(defn build* + [files resolve reject] + (let [zipobj (js/JSZip.)] + (run! (fn [[name content]] + (.file zipobj name content)) + files) + (-> (.generateAsync zipobj #js {:type "blob"}) + (.then resolve reject)))) + +(defn build + [files] + (p/promise (fn [resolve reject] + (build* files resolve reject))))