Fork me on GitHub
#malli
<
2020-03-31
>
eskos10:03:29

I’ve been lately thinking whether malli should adopt git’s porcelain vs plumbing mentality for the schemas, but haven’t drafted anything sensible yet about it. To me there seems to be a lot of cases where the more complex/abstract schema really is just a composition of simpler ones, eg. range is just int with min and max and stepping validation (`[:range {:from 0 :to 10 :step 2}) => [:and [:int {:min 0 :max 10}] [:fn '(fn [i] (= 0 (mod i 2))]]`) or [:map-of keyword? string?] could be [:map {:default-kv [keyword? string?]}] &lt;- this one doesn’t exist! just an example) etc. but this would require quite a bit of thought on choosing what the base schemas in registries are and what counts as plumbing and what doesn’t… 🙂

teodorlu13:03:51

Vega/Vega Lite does something similar. Vega Lite is high-level data format (for plotting), and compiles down to Vega. https://vega.github.io/vega-lite/