validate_cli : CliConfig -> Try({ }, CliValidationErr)
Ensure that a CLI's configuration is valid.
:= []
validate_cli : CliConfig -> Try({ }, CliValidationErr)
Ensure that a CLI's configuration is valid.
ensure_command_is_well_named : NameAtSubcommand -> Try({ }, CliValidationErr)
ensure_param_is_well_named : NameAtSubcommand -> Try({ }, CliValidationErr)
ensure_option_is_well_named : OptionAtSubcommand -> Try({ }, CliValidationErr)
ensure_option_value_type_is_well_named : OptionAtSubcommand -> Try({ }, CliValidationErr)
ensure_param_value_type_is_well_named : ParamAtSubcommand -> Try({ }, CliValidationErr)
ensure_short_flag_is_well_named : NameAtSubcommand -> Try({ }, CliValidationErr)
ensure_long_flag_is_well_named : NameAtSubcommand -> Try({ }, CliValidationErr)
check_if_there_are_overlapping_options : List(OptionAtSubcommand) -> Try({ }, CliValidationErr)
check_if_there_are_overlapping_parameters : List(ParameterConfig), List(Str) -> Try({ }, CliValidationErr)
NameAtSubcommand : { name : Str, subcommand_path : List(Str) }
OptionAtSubcommand : { option : OptionConfig, subcommand_path : List(Str) }
ParamAtSubcommand : { param : ParameterConfig, subcommand_path : List(Str) }
CliValidationErr : [
OverlappingParameterNames({ first : Str, second : Str, subcommand_path : List(Str) }),
OverlappingOptionNames({ left : OptionAtSubcommand, right : OptionAtSubcommand }),
DuplicateSubcommandName(NameAtSubcommand),
RequiredSubcommandsCannotBeEmpty(List(Str)),
InvalidShortFlagName(NameAtSubcommand),
InvalidLongFlagName(NameAtSubcommand),
InvalidCommandName(NameAtSubcommand),
InvalidParameterName(NameAtSubcommand),
OptionMustHaveShortOrLongName({ subcommand_path : List(Str) }),
InvalidOptionValueType(OptionAtSubcommand),
InvalidParameterValueType(ParamAtSubcommand),
OverrodeSpecialHelpFlag(OptionAtSubcommand),
OverrodeSpecialVersionFlag(OptionAtSubcommand),
]
The types of errors that might be found in a misconfigured CLI.