diff --git a/src/datomish/places/import.cljc b/src/datomish/places/import.cljc index d2bf336d..e6e03ef0 100644 --- a/src/datomish/places/import.cljc +++ b/src/datomish/places/import.cljc @@ -40,19 +40,6 @@ :db.install/_attribute :db.part/db} ]) -(defn assoc-if - ([m k v] - (if v - (assoc m k v) - m)) - ([m k v & kvs] - (if kvs - (let [[kk vv & remainder] kvs] - (apply assoc-if - (assoc-if m k v) - kk vv remainder)) - (assoc-if m k v)))) - (defn- place->entity [[id rows]] (let [title (:title (first rows)) @@ -61,9 +48,9 @@ :page/guid (:guid (first rows))} visits (keep :visit_date rows)] - (assoc-if required - :page/title title - :page/visitAt visits))) + (util/assoc-if required + :page/title title + :page/visitAt visits))) (defn import-titles [conn places-connection] (go-pair diff --git a/src/datomish/util.cljc b/src/datomish/util.cljc index 027f1d84..e279be2e 100644 --- a/src/datomish/util.cljc +++ b/src/datomish/util.cljc @@ -73,6 +73,19 @@ [m path v] (concat-in m path [v])) +(defn assoc-if + ([m k v] + (if v + (assoc m k v) + m)) + ([m k v & kvs] + (if kvs + (let [[kk vv & remainder] kvs] + (apply assoc-if + (assoc-if m k v) + kk vv remainder)) + (assoc-if m k v)))) + (defmacro while-let [binding & forms] `(loop [] (when-let ~binding