      [datomish.pair-chan :refer [go-pair <?]]
      [datomish.promises :refer [go-promise]])
   (:require
+     [datomish.util
+      :as util
+      :refer-macros [raise raise-str cond-let]]
      [cljs.core.async :as a :refer [take! <! >!]]
      [cljs.reader]
      [cljs-promises.core :refer [promise]]


(def ^:export db d/db)

(defn ^:export q [db find options]
  (let [find (cljs.reader/read-string find)
        opts (cljify options)]
    (take-pair-as-promise!
      (d/<q db find opts)
      clj->js)))

(defn ^:export ensure-schema [conn simple-schema]
  (let [simple-schema (cljify simple-schema)
        datoms (simple-schema/simple-schema->schema simple-schema)]
    (take-pair-as-promise!
      (d/<transact!
        conn
