cljs.spec.alpha/map-of
(map-of kpred vpred & opts)
Source docstring:
Returns a spec for a map whose keys satisfy kpred and vals satisfy
vpred. Unlike 'every-kv', map-of will exhaustively conform every
value.
Same options as 'every', :kind defaults to map?, with the addition of:
:conform-keys - conform keys as well as values (default false)
See also - every-kv
(defmacro map-of
[kpred vpred & opts]
(let [desc `(map-of ~(res &env kpred) ~(res &env vpred) ~@(res-kind &env opts))]
`(every-kv ~kpred ~vpred ::conform-all true :kind map? ::describe '~desc ~@opts)))