malli

https://github.com/metosin/malli :malli:
ikitommi 2020-06-16T10:45:33.051500Z

ikitommi 2020-06-16T10:46:40.052700Z

with default, malli is all-immutable, with a CLOSURE_DEFINES or JVM Prop setup, the default registry can be swapped out in the user space.

ikitommi 2020-06-16T10:47:50.054200Z

allows also really smaller bundle sizes, moved all the defs into defns so closure can eliminate those if needed.

ikitommi 2020-06-16T10:48:07.054700Z

@plexus, would that help with your acme-schema sample?

ikitommi 2020-06-16T10:48:57.055600Z

also, the options would be default (immutable) or managed (swappable). any suggestions for better names?

plexus 2020-06-16T11:29:22.058100Z

yeah I think that would help us

ikitommi 2020-06-16T14:21:59.058200Z

ikitommi 2020-06-16T14:22:38.059200Z

even more evil. optional MUTABLE registry constructor, just pass in your own atom.

2020-06-16T16:04:11.060900Z

would it be possible to avoid having any mutable registry by having the user define his own API functions defaulting to their own registry?

2020-06-16T16:05:19.061700Z

maybe via a macro? (def-malli-api my-registry)

ikitommi 2020-06-16T17:03:18.067500Z

that is one approach, and can be done on top of the current api. Not a fan of macros generating functions personally. Need extra work to work with static analysis tools (like cursive) Also, the api should require all the malli namespaces to be complete.

1☝️
ikitommi 2020-06-16T17:12:57.072Z

I'll make set-default-regisyry! to throw if the registry swapping is not enabled.