jsonschema: Filter out 'invisible' options, that are there to throw errors on define

This commit is contained in:
Qubasa
2024-05-03 19:36:59 +02:00
parent 83f07816a3
commit fa51b82cfb
2 changed files with 7 additions and 3 deletions

View File

@@ -17,7 +17,7 @@ let
location: ${lib.concatStringsSep "." option.loc}
'';
# Exclude the option if it's type is in the excludedTypes list
# Exclude the option if its type is in the excludedTypes list
# or if the option has a defaultText attribute
isExcludedOption =
option: ((lib.elem (option.type.name or null) excludedTypes) || (option ? defaultText));
@@ -26,6 +26,9 @@ let
filterExcludedAttrs = lib.filterAttrs (_name: opt: !isExcludedOption opt);
# Filter out options where the visible attribute is set to false
filterInvisibleOpts = lib.filterAttrs (_name: opt: opt.visible or true);
allBasicTypes = [
"boolean"
"integer"
@@ -50,7 +53,7 @@ rec {
parseOptions =
options':
let
options = filterExcludedAttrs (clean options');
options = filterInvisibleOpts (filterExcludedAttrs (clean options'));
# parse options to jsonschema properties
properties = lib.mapAttrs (_name: option: parseOption option) options;
# TODO: figure out how to handle if prop.anyOf is used