metosin/malli

plantuml and dot transform fail with custom registry

Open

#1.060 aberto em 19 de mai. de 2024

Ver no GitHub
 (1 comment) (1 reaction) (0 assignees)Clojure (237 forks)batch import
bughelp wanted

Métricas do repositório

Stars
 (1.724 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Hi,

I've reported this on slack https://clojurians.slack.com/archives/CLDK6MFMK/p1716113560108419 and https://clojurians.slack.com/archives/CLDK6MFMK/p1716110401656839

Some more info there

This is a repro:

(ns user 
  (:require [malli.experimental.time.generator]
            [malli.experimental.time :as mt]
            [malli.core :as m]
            [malli.registry :as mr]
            [malli.generator :as mg]
            [malli.plantuml :as plantuml]
            [malli.dot :as md]))

(def snm-schema {"Curve" [:enum :curve25519 :p256]})

(def r
  (mr/composite-registry
   m/default-registry
   (mr/registry (mt/schemas))
   (mr/registry snm-schema)))

(comment
  (mg/generate "Curve" {:registry r})
  ;; => :p256

  (plantuml/transform ["Curve"] {:registry r})
  ;; => Execution error (ExceptionInfo) at malli.core/-exception (core.cljc:136).
  ;;    :malli.core/invalid-schema

  (md/transform ["Curve"] {:registry r})
  ;; => Execution error (ExceptionInfo) at malli.core/-exception (core.cljc:136).
  ;;    :malli.core/invalid-schema

  )

ambrosebs 16 minutes ago Apparently the registry needs to be embedded in the schema atm. (println (plantuml/transform [:schema {:registry {"Curve" [:enum :curve25519 :p256]}} "Curve"])) @startuml entity Curve { [:enum :curve25519 :p256] } @enduml

ambrosebs 5 minutes ago maybe ref handling needs an overhaul here. recursive schemas also don't work.

Guia do colaborador