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 // {