From b8aaac02aa66ef5e21b4054d68a8fb6bd98dd534 Mon Sep 17 00:00:00 2001 From: Anatoly Zelenin Date: Sun, 3 Jan 2016 13:15:48 +0100 Subject: [PATCH] Made HoneySQL helpers compatible with ClojureScript --- src/honeysql/{helpers.clj => helpers.cljc} | 28 ++++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) rename src/honeysql/{helpers.clj => helpers.cljc} (89%) diff --git a/src/honeysql/helpers.clj b/src/honeysql/helpers.cljc similarity index 89% rename from src/honeysql/helpers.clj rename to src/honeysql/helpers.cljc index a9825b3..ec56c87 100644 --- a/src/honeysql/helpers.clj +++ b/src/honeysql/helpers.cljc @@ -1,4 +1,5 @@ (ns honeysql.helpers + #?(:cljs (:require-macros [honeysql.helpers :refer [defhelper]])) (:refer-clojure :exclude [update])) (defmulti build-clause (fn [name & args] @@ -7,18 +8,19 @@ (defmethod build-clause :default [_ m & args] m) -(defmacro defhelper [helper arglist & more] - (let [kw (keyword (name helper))] - `(do - (defmethod build-clause ~kw ~(into ['_] arglist) ~@more) - (doto (defn ~helper [& args#] - (let [[m# args#] (if (map? (first args#)) - [(first args#) (rest args#)] - [{} args#])] - (build-clause ~kw m# args#))) - ;; maintain the original arglist instead of getting - ;; ([& args__6880__auto__]) - (alter-meta! assoc :arglists '(~arglist)))))) +#?(:clj + (defmacro defhelper [helper arglist & more] + (let [kw (keyword (name helper))] + `(do + (defmethod build-clause ~kw ~(into ['_] arglist) ~@more) + (doto (defn ~helper [& args#] + (let [[m# args#] (if (map? (first args#)) + [(first args#) (rest args#)] + [{} args#])] + (build-clause ~kw m# args#))) + ;; maintain the original arglist instead of getting + ;; ([& args__6880__auto__]) + (alter-meta! assoc :arglists '(~arglist))))))) (defn collify [x] (if (coll? x) x [x])) @@ -224,7 +226,7 @@ (defn delete-from ([table] (delete-from nil table)) ([m table] (build-clause :delete-from m table))) - + (defmethod build-clause :with [_ m ctes] (assoc m :with ctes))