We use Break Versioning. The version numbers follow a <major>.<minor>.<patch> scheme with the following intent:
| Bump | Intent |
|---|---|
major | Major breaking changes -- check the changelog for details. |
minor | Minor breaking changes -- check the changelog for details. |
patch | No breaking changes, ever!! |
-SNAPSHOT versions are preview versions for upcoming releases.
Malli is in alpha.
:nil schema, #401:multi returns branch information, #403:and merges using first child, #405:orn json-schema & generator, #400mt/default-value-transformer, #397nil keys in maps, #392:m/default for :multi, #391:double, #382support for sequence schemas: :cat, catn, alt, altn, :?, :*, :+ and repeat, see Sequence Schemas.
support for parsing and unparsing schemas: m/parse, m/parser, m/unparse, m/unparser, see Parsing values.
support for function schmas: :=> and :function, see Function Schemas.
new schemas: :any (e.g. any?), :not (complement) and :orn (or with named branches)
:qualified-keyword support :namespace property
FIX: Schema vizualization is not working for [:< ...] like schemas, #370
Ensure we use size 30 for generator (for more variety), #364
Set JSON Schema types and formats for numbers properly #354
-memoize actually memoized. easily 100x faster now #350
Fix interceptor composition, #347
malli.util: add a rename-keys utility, similar to clojure.set #338
Let mu/update accept plain data schemas, #329
mu/find, #322
m/Schema has new methods: -parent, -parser and -unparserm/-coder and m/-chain are replaced wih m/-interceptingm/-fail! is now miu/-fail!m/-error is now miu/-error:sequential decoding with empty sequence under mt/json-transformer, fixes #288
mt/-sequential->seqm/deref returns original schema, does not throw, fixes #284.malli.util deref top-level refs recursively: merge, union, transform-entries, optional-keys, required-keys, select-keys and dissoc.m/deref-all derefs all top-level references recursively, e.g.(m/deref-all [:schema [:schema int?]])
; => int?
:ref, :schema, ::m/schema have now generators, JSON Schema and Swagger supportmu/subschemas walks over top-level :ref and all :schemas.m/walk can walk over :ref and :schema reference schemas. Walking can be enabled using options :malli.core/walk-refs and :malli.core/walk-schema-refs.There are also declarative versions of schema transforming utilities in malli.util/schemas. These include :merge, :union and :select-keys:
(def registry (merge (m/default-schemas) (mu/schemas)))
(def Merged
(m/schema
[:merge
[:map [:x :string]]
[:map [:y :int]]]
{:registry registry}))
Merged
;[:merge
; [:map [:x :string]]
; [:map [:y :int]]]
(m/deref Merged)
;[:map
; [:x :string]
; [:y :int]]
(m/validate Merged {:x "kikka", :y 6})
; => true
New options for SCI:
:malli.core/disable-sci for explicitly disabling sci, fixes #276:malli.core/sci-options for configuring scimalli.transform/default-value-transformer accepts options :key and :defaults:
(m/decode
[:map
[:user [:map
[:name :string]
[:description {:ui/default "-"} :string]]]]
nil
(mt/default-value-transformer
{:key :ui/default
:defaults {:map (constantly {})
:string (constantly "")}}))
; => {:user {:name "", :description "-"}}
First stable release.
:list schemamalli.error/SchemaError protocol in favor of using m/type-properties for custom errorsm/-predicate-schema, m/-partial-predicate-schema and m/-leaf-schemam/Schema: -type-propertiesm/children returns 3-tuple (key, properties, schema) for MapSchemasm/map-entries is removed, m/entries returns a MapEntry of key & m/-val-schema:path in explain is re-implemented: map keys by value, others by child indexm/-walk and m/Walker uses :path, not :inm/-outer has new parameter order: walker schema path children optionsmalli.util/path-schemas replaced with malli.util/subschemas & malli.util/distict-byLensSchema has a new -key methodmalli.core & malli.utilmalli.core to malli.utilcom.gfredericks/test.chucksci is not a default dependency. Enabling sci-support:
borkdude/scisci.core (directly or via :preloads)malli.transform internals.malli.mermaid is removed (in favor of malli.dot)[metosin/malli "0.0.1-20200710.075225-19"]m/accept -> m/walkm/schema-visitor -> m/schema-walkerm/map-syntax-visitor -> m/map-syntax-walker-children method in Schema, to return child schemas as instances (instead of just AST)malli.core/*-registry defs into malli.core/*-schemas defns to enable DCE for clojurescriptmalli.core/name & malli.core/-name renamed to malli.core/type & malli.core/-typemalli.generator/-generator is renamed to malli.generator/-schema-generatorCan you improve this documentation? These fine people already did:
Tommi Reiman, Miikka Koskinen & Lucy WangEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |