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.
: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 |