metosin/malli

plantuml and dot transform fail with custom registry

Open

#1.060 geöffnet am 19. Mai 2024

Auf GitHub ansehen
 (1 Kommentar) (1 Reaktion) (0 zugewiesene Personen)Clojure (237 Forks)batch import
bughelp wanted

Repository-Metriken

Stars
 (1.724 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

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.

Contributor Guide