diff --git a/modules/reitit-core/src/reitit/spec.cljc b/modules/reitit-core/src/reitit/spec.cljc index a3fa0290..6715eae3 100644 --- a/modules/reitit-core/src/reitit/spec.cljc +++ b/modules/reitit-core/src/reitit/spec.cljc @@ -119,11 +119,12 @@ (defrecord Problem [path scope data spec problems]) (defn validate-route-data [routes wrap spec] - (let [spec (wrap spec)] - (some->> (for [[p d _] routes] - (when-let [problems (and spec (s/explain-data spec d))] - (->Problem p nil d spec problems))) - (keep identity) (seq) (vec)))) + (let [spec (wrap spec) + spec-explain (fn [[p d _]] + (when-let [problems (and spec (s/explain-data spec d))] + (->Problem p nil d spec problems))) + errors (into [] (keep spec-explain) routes)] + (when (pos? (count errors)) errors))) (defn validate [routes {:keys [spec] ::keys [wrap] :or {spec ::default-data, wrap identity}}] (when-let [problems (validate-route-data routes wrap spec)]