Fork me on GitHub
#malli
<
2023-09-19
>
cheewah12:09:35

below works

(m/validate [:schema {:registry {:my.ns.enum/Enum [:enum :ZERO :ONE]
                                 :my.ns.singular/Singular [:map [:enum_val [:ref :my.ns.enum/Enum]]]}}
             [:ref :my.ns.singular/Singular]]
            {:enum_val :ZERO})
; true
but if i put the schema into a registry (for re-use), it produces the following error
(def registry [:schema {:registry {:my.ns.enum/Enum [:enum :ZERO :ONE]
                                   :my.ns.singular/Singular [:map [:enum_val [:ref :my.ns.enum/Enum]]]}}])
(m/validate [:ref :my.ns.singular/Singular] {:enum_val :ZERO} {:registry registry})
; Execution error (ExceptionInfo) at malli.core/-exception (core.cljc:138).
; :malli.core/invalid-ref
appreciate some pointers on how to do this correctly

zy C18:09:05

(m/validate [:ref :my.ns.singular/Singular] {:enum_val :ZERO}
                                 {:registry (malli.registry/composite-registry
                                             m/default-registry
                                             {:my.ns.enum/Enum [:enum :ZERO :ONE]
                                              :my.ns.singular/Singular [:map [:enum_val [:ref :my.ns.enum/Enum]]]})})
try this?

👍 1
cheewah01:09:32

this works, thanks for the help!