Made HoneySQL helpers compatible with ClojureScript

This commit is contained in:
Anatoly Zelenin 2016-01-03 13:15:48 +01:00
parent 93e66c90c4
commit b8aaac02aa

View file

@ -1,4 +1,5 @@
(ns honeysql.helpers (ns honeysql.helpers
#?(:cljs (:require-macros [honeysql.helpers :refer [defhelper]]))
(:refer-clojure :exclude [update])) (:refer-clojure :exclude [update]))
(defmulti build-clause (fn [name & args] (defmulti build-clause (fn [name & args]
@ -7,7 +8,8 @@
(defmethod build-clause :default [_ m & args] (defmethod build-clause :default [_ m & args]
m) m)
(defmacro defhelper [helper arglist & more] #?(:clj
(defmacro defhelper [helper arglist & more]
(let [kw (keyword (name helper))] (let [kw (keyword (name helper))]
`(do `(do
(defmethod build-clause ~kw ~(into ['_] arglist) ~@more) (defmethod build-clause ~kw ~(into ['_] arglist) ~@more)
@ -18,7 +20,7 @@
(build-clause ~kw m# args#))) (build-clause ~kw m# args#)))
;; maintain the original arglist instead of getting ;; maintain the original arglist instead of getting
;; ([& args__6880__auto__]) ;; ([& args__6880__auto__])
(alter-meta! assoc :arglists '(~arglist)))))) (alter-meta! assoc :arglists '(~arglist)))))))
(defn collify [x] (defn collify [x]
(if (coll? x) x [x])) (if (coll? x) x [x]))