diff --git a/src/datomish/datom.cljc b/src/datomish/datom.cljc index 78b61b9f..32533a63 100644 --- a/src/datomish/datom.cljc +++ b/src/datomish/datom.cljc @@ -122,7 +122,8 @@ :v (Datom. (.-e d) (.-a d) v (.-tx d) (.-added d)) :tx (Datom. (.-e d) (.-a d) (.-v d) v (.-added d)) :added (Datom. (.-e d) (.-a d) (.-v d) (.-tx d) v) - (throw (IllegalArgumentException. (str "invalid key for #datascript/Datom: " k))))) + #?(:clj (throw (IllegalArgumentException. (str "invalid key for #datascript/Datom: " k))) + :cljs (throw (js/Error. (str "invalid key for #datascript/Datom: " k)))))) ;; printing and reading diff --git a/src/datomish/schema.cljc b/src/datomish/schema.cljc index ddff77b4..c2ef2e02 100644 --- a/src/datomish/schema.cljc +++ b/src/datomish/schema.cljc @@ -85,9 +85,9 @@ {:db.type/ref { :valid? #(and (integer? %) (pos? %)) :->SQLite identity :<-SQLite identity } :db.type/keyword { :valid? keyword? :->SQLite str :<-SQLite #(keyword (subs % 1)) } :db.type/string { :valid? string? :->SQLite identity :<-SQLite identity } - :db.type/boolean { :valid? #(instance? Boolean %) :->SQLite #(if % 1 0) :<-SQLite #(if (= % 1) true false) } + :db.type/boolean { :valid? #?(:clj #(instance? Boolean %) :cljs #(= js/Boolean (type %))) :->SQLite #(if % 1 0) :<-SQLite #(if (= % 1) true false) } :db.type/integer { :valid? integer? :->SQLite identity :<-SQLite identity } - :db.type/real { :valid? float? :->SQLite identity :<-SQLite identity } + :db.type/real { :valid? #?(:clj float? :cljs number?) :->SQLite identity :<-SQLite identity } }) (defn #?@(:clj [^Boolean ensure-valid-value] diff --git a/src/datomish/util.cljc b/src/datomish/util.cljc index 96027bb9..aa9c205e 100644 --- a/src/datomish/util.cljc +++ b/src/datomish/util.cljc @@ -36,7 +36,7 @@ (if (and (symbol? x) (str/starts-with? (name x) "?")) (keyword (subs (name x) 1)) - (raise-str x " is not a Datalog var."))) + (throw (ex-info (str x " is not a Datalog var.") {})))) (defn conj-in "Associates a value into a sequence in a nested associative structure, where diff --git a/test/datomish/db_test.cljc b/test/datomish/db_test.cljc index 7ec2d5ee..8c4bf97e 100644 --- a/test/datomish/db_test.cljc +++ b/test/datomish/db_test.cljc @@ -32,6 +32,9 @@ #?(:clj (:import [datascript.db DB]))) +#?(:cljs + (def Throwable js/Error)) + (defn-