diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index 7a7b8d6e1a..ec3b66f776 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -6,9 +6,12 @@ app.db/with-atomic clojure.core/with-open} :hooks - {:analyze-call {app.common.data/export hooks.export/export - potok.core/reify hooks.export/potok-reify - cljs.core/specify! hooks.export/clojure-specify}} + {:analyze-call + {app.common.data/export hooks.export/export + potok.core/reify hooks.export/potok-reify + cljs.core/specify! hooks.export/clojure-specify + app.util.services/defmethod hooks.export/service-defmethod + }} :output {:exclude-files @@ -41,8 +44,5 @@ {:exclude-destructured-as true :exclude-destructured-keys-in-fn-args false } - - :unresolved-symbol - {:exclude ['(app.util.services/defmethod) - ]}}} + }} diff --git a/.clj-kondo/hooks/export.clj b/.clj-kondo/hooks/export.clj index ffa7dceba3..f29cc1a156 100644 --- a/.clj-kondo/hooks/export.clj +++ b/.clj-kondo/hooks/export.clj @@ -28,3 +28,22 @@ (api/token-node (gensym (:string-value rtype)))] other))] {:node result})) + + +(defn service-defmethod + [{:keys [:node]}] + (let [[rnode rtype & other] (:children node) + rsym (gensym (name (:k rtype))) + result (api/list-node + [(api/token-node (symbol "do")) + (api/list-node + [(api/token-node (symbol "declare")) + (api/token-node rsym)]) + (api/list-node + (into [(api/token-node (symbol "defmethod")) + (api/token-node rsym) + rtype] + other))])] + {:node result})) + +