From 76e23097783d29f0c8af61dfe72aaed8010a9527 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 15 Jun 2021 10:39:06 +0200 Subject: [PATCH] :sparkles: Improve builder library --- frontend/src/app/libs/file_builder.cljs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/libs/file_builder.cljs b/frontend/src/app/libs/file_builder.cljs index 2aa4bff3a..8d64cbb3a 100644 --- a/frontend/src/app/libs/file_builder.cljs +++ b/frontend/src/app/libs/file_builder.cljs @@ -15,19 +15,23 @@ (js->clj $ :keywordize-keys true) ;; Transforms camelCase to kebab-case (d/deep-mapm - (fn [[k v]] - [(-> k d/name str/kebab keyword) v]) $))) + (fn [[key value]] + (let [value (if (= (type value) js/Symbol) + (keyword (js/Symbol.keyFor value)) + value) + key (-> key d/name str/kebab keyword)] + [key value])) $))) (deftype File [^:mutable file] Object - (addPage - ([self name] - (addPage self name nil)) + (addPage [self name] + (set! file (fb/add-page file {:name name})) + (str (:current-page-id file))) - ([self name options] - (set! file (fb/add-page file {:name name :options options})) - (str (:current-page-id file)))) + (addPage [self name options] + (set! file (fb/add-page file {:name name :options options})) + (str (:current-page-id file))) (closePage [self] (set! file (fb/close-page file))) @@ -65,7 +69,10 @@ (set! file (fb/create-svg-raw file (parse-data data)))) (closeSVG [self] - (set! file (fb/close-svg-raw file)))) + (set! file (fb/close-svg-raw file))) + + (asMap [self] + (clj->js file))) (defn create-file-export [^string name] (File. (fb/create-file name)))