metosin/malli

plantuml and dot transform fail with custom registry

开放

#1,060 创建于 2024年5月19日

 (1 条评论) (1 个反应) (0 位负责人)Clojure (237 个派生)batch import
bughelp wanted

仓库指标

星标
 (1,724 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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.

贡献者指南