| macro | previously cljs.spec/conformer |  clojure.spec.alpha/conformer | Edit | 
(conformer f)(conformer f unf)takes a predicate function with the semantics of conform i.e. it should return either a (possibly converted) value or :cljs.spec.alpha/invalid, and returns a spec that uses it as a predicate/conformer. Optionally takes a second fn that does unform of result of first
(defmacro conformer
  ([f] `(spec-impl '(conformer ~(res &env f)) ~f nil true))
  ([f unf] `(spec-impl '(conformer ~(res &env f) ~(res &env unf)) ~f nil true ~unf)))