metosin/malli

plantuml and dot transform fail with custom registry

Open

#1,060 opened on May 19, 2024

View on GitHub
 (1 comment) (1 reaction) (0 assignees)Clojure (1,724 stars) (237 forks)batch import
bughelp wanted

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.

Contributor guide