From e4e8074fed6cc2a8fcc137c3dfc8e0ca4bfaa737 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin <valentin.gagarin@tweag.io> Date: Fri, 4 Apr 2025 11:15:20 +0200 Subject: [PATCH] JSON schema converter: make regular attrs required --- panel/jsonschema.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/panel/jsonschema.nix b/panel/jsonschema.nix index ca833827..b4dd8665 100644 --- a/panel/jsonschema.nix +++ b/panel/jsonschema.nix @@ -127,7 +127,7 @@ rec { # parse options to jsonschema properties properties = lib.mapAttrs (_name: option: (parseOption' (path ++ [ _name ]) option)) options'; # TODO: figure out how to handle if prop.anyOf is used - isRequired = prop: !(prop ? default || prop.type or null == "object"); + isRequired = prop: !(prop ? default || prop."$exportedModuleInfo".required or false); requiredProps = lib.filterAttrs (_: prop: isRequired prop) properties; required = lib.optionalAttrs (requiredProps != { }) { required = lib.attrNames requiredProps; }; header' = if addHeader then header else { }; @@ -381,7 +381,11 @@ rec { # return jsonschema property definition for attrs then default - // exposedModuleInfo + // (lib.reqursiveUpdate exposedModuleInfo { + "$exportedModuleInfo" = { + required = true; + }; + }) // example // description // {