feat: add cljs.spec.alpha

pull/645/head
defclass 2020-10-30 18:14:16 +08:00
parent 3ea34ded54
commit 9fda0a4c03
2 changed files with 22 additions and 1 deletions

View File

@ -23,7 +23,8 @@
hickory {:mvn/version "0.7.1"}
hiccups {:mvn/version "0.3.0"}
tongue {:mvn/version "0.2.9"}
org.clojure/core.async {:mvn/version "1.3.610"}}
org.clojure/core.async {:mvn/version "1.3.610"}
expound {:mvn/version "0.8.6"}}
:aliases {:cljs {:extra-paths ["src/dev-cljs/"]
:extra-deps {org.clojure/clojurescript {:mvn/version "1.10.520"}

View File

@ -0,0 +1,20 @@
(ns frontend.spec
(:require [cljs.spec.alpha :as s]
[frontend.config :as config]
[expound.alpha :as expound]))
;; disable in production
(when config/dev? (s/check-asserts true))
(set! s/*explain-out* expound/printer)
(defn validate [spec value]
(when-let [error (s/explain-data spec value)]
(if config/dev?
(throw (ex-info (expound/expound-str spec value) error))
(js/console.log (expound/expound-str spec value)))))
(s/def :user/repo string?)
(comment
(validate :user/repo 1))