path_invalid_construct.clj 636 B

1234567891011121314
  1. (ns hooks.path-invalid-construct
  2. "This hook try to find out those error-prone path construction expressions:
  3. - (string/join \"/\" [...])"
  4. (:require [clj-kondo.hooks-api :as api]))
  5. (defn string-join
  6. [{:keys [node]}]
  7. (let [[_ sep-v & _args] (:children node)]
  8. (when (and (api/string-node? sep-v)
  9. (= ["/"] (:lines sep-v)))
  10. (api/reg-finding! (assoc (meta node)
  11. :message "don't use clojure.string/join to build a path, (use #_{:clj-kondo/ignore [:path-invalid-construct/string-join]} to ignore)"
  12. :type :path-invalid-construct/string-join)))))