Browse code

Refactor data loading

Joseph Weston authored on 12/12/2021 20:47:36
Showing 1 changed files
... ...
@@ -18,27 +18,21 @@
18 18
     [x]
19 19
     (assoc x :license-notice ogl-notice))
20 20
 
21
-(def spells
22
-  (-> "5e-database/5e-SRD-Spells.json"
23
-      rc/inline
24
-      (#(.parse js/JSON %))
25
-      (js->clj :keywordize-keys true)
26
-      (as-> s (map add-ogl-notice s))))
27
-
21
+(def srd-data {:spells (rc/inline "5e-database/5e-SRD-Spells.json")
22
+               :equipment (rc/inline "5e-database/5e-SRD-Equipment.json")})
28 23
 
29
-(def equipment
30
-  (-> "5e-database/5e-SRD-Equipment.json"
31
-      rc/inline
32
-      (#(.parse js/JSON %))
33
-      (js->clj :keywordize-keys true)
34
-      (as-> s (map add-ogl-notice s))))
24
+(defn- parse-srd-data [raw-data]
25
+  (as-> raw-data x
26
+      (.parse js/JSON x)
27
+      (js->clj x :keywordize-keys true)
28
+      (map add-ogl-notice x)))
35 29
 
30
+(defn- fmap [f m] (zipmap (keys m) (map f (vals m))))
36 31
 
37 32
 (def default-db
38 33
   {:name "DMR"
39 34
    :cmdline {:current ""
40 35
              :selected-history nil
41 36
              :history []}
42
-   :spells spells
43
-   :equipment equipment
37
+   :entities (fmap parse-srd-data srd-data)
44 38
    :license open-game-license})