requestflag

package
v0.13.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyStdinDataToFlags added in v0.5.0

func ApplyStdinDataToFlags(cmd *cli.Command, data map[string]any) error

ApplyStdinDataToFlags maps piped data to unset path, query, and header flags. Body flags use the separate body merge. Nested flags read their outer map.

func CheckInnerFlags

func CheckInnerFlags(cmd cli.Command) error

CheckInnerFlags validates outer references and --foo.baz prefixes.

func GetMissingRequiredFlags

func GetMissingRequiredFlags(cmd *cli.Command, body any) []cli.Flag

func Ptr added in v0.5.0

func Ptr[T any](v T) *T

Ptr returns a pointer for nullable flag defaults.

func WithInnerFlags

func WithInnerFlags(cmd cli.Command, innerFlagMap map[string][]HasOuterFlag) cli.Command

WithInnerFlags attaches nested flags to their outer flags.

Types

type DateTimeValue

type DateTimeValue string

func (*DateTimeValue) Parse

func (d *DateTimeValue) Parse(s string) error

func (DateTimeValue) String

func (d DateTimeValue) String() string

type DateValue

type DateValue string

func (*DateValue) Parse

func (d *DateValue) Parse(s string) error

func (DateValue) String

func (d DateValue) String() string

type Flag

type Flag[
	T []any | []map[string]any | []DateTimeValue | []DateValue | []TimeValue | []string |
		[]float64 | []int64 | []bool | any | map[string]any | DateTimeValue | DateValue | TimeValue |
		string | float64 | int64 | bool |
		*string | *float64 | *int64 | *bool | *DateTimeValue | *DateValue | *TimeValue,
] struct {
	Name        string
	Category    string
	DefaultText string
	HideDefault bool
	Usage       string
	Sources     cli.ValueSourceChain
	Required    bool
	Hidden      bool
	Default     T
	Aliases     []string
	Validator   func(T) error

	QueryPath  string
	HeaderPath string
	BodyPath   string
	BodyRoot   bool
	PathParam  string

	// Const always includes Default but still permits overrides.
	Const bool

	// FileInput treats values as paths without an @ prefix.
	FileInput bool

	// DataAliases maps piped input names to the canonical API name.
	DataAliases []string
	// contains filtered or unexported fields
}

Flag implements urfave/cli flags and maps values into HTTP requests. Pointer types preserve unset, null, and concrete values.

func (*Flag[T]) Count

func (f *Flag[T]) Count() int

func (*Flag[T]) Get

func (f *Flag[T]) Get() any

func (Flag[T]) GetBodyPath

func (f Flag[T]) GetBodyPath() string

func (*Flag[T]) GetCategory

func (f *Flag[T]) GetCategory() string

func (Flag[T]) GetDataAliases added in v0.4.0

func (f Flag[T]) GetDataAliases() []string

func (*Flag[T]) GetDefaultText

func (f *Flag[T]) GetDefaultText() string

func (*Flag[T]) GetEnvVars

func (f *Flag[T]) GetEnvVars() []string

GetEnvVars returns the flag's environment variables.

func (Flag[T]) GetHeaderPath

func (f Flag[T]) GetHeaderPath() string

func (Flag[T]) GetPathParam added in v0.5.0

func (f Flag[T]) GetPathParam() string

func (Flag[T]) GetQueryPath

func (f Flag[T]) GetQueryPath() string

func (*Flag[T]) GetUsage

func (f *Flag[T]) GetUsage() string

func (*Flag[T]) GetValue

func (f *Flag[T]) GetValue() string

func (Flag[T]) IsBodyRoot

func (f Flag[T]) IsBodyRoot() bool

func (*Flag[T]) IsBoolFlag

func (f *Flag[T]) IsBoolFlag() bool

func (*Flag[T]) IsDefaultVisible

func (f *Flag[T]) IsDefaultVisible() bool

func (Flag[T]) IsFileInput added in v0.3.0

func (f Flag[T]) IsFileInput() bool

func (Flag[T]) IsLocal

func (f Flag[T]) IsLocal() bool

func (*Flag[T]) IsMultiValueFlag

func (f *Flag[T]) IsMultiValueFlag() bool

func (*Flag[T]) IsRequired

func (f *Flag[T]) IsRequired() bool

func (*Flag[T]) IsRequiredAsFlagOrStdin

func (f *Flag[T]) IsRequiredAsFlagOrStdin() bool

func (*Flag[T]) IsSet

func (f *Flag[T]) IsSet() bool

func (*Flag[T]) IsVisible

func (f *Flag[T]) IsVisible() bool

func (*Flag[T]) Names

func (f *Flag[T]) Names() []string

func (*Flag[T]) PostParse

func (f *Flag[T]) PostParse() error

func (*Flag[T]) PreParse

func (f *Flag[T]) PreParse() error

func (*Flag[T]) SeedInnerCollection added in v0.5.0

func (f *Flag[T]) SeedInnerCollection(isArrayOfObjects bool)

SeedInnerCollection seeds an untyped flag with a map or list.

func (*Flag[T]) Set

func (f *Flag[T]) Set(name string, val string) error

func (*Flag[T]) SetCategory

func (f *Flag[T]) SetCategory(c string)

func (*Flag[T]) SetInnerField

func (f *Flag[T]) SetInnerField(field string, val any)

func (*Flag[T]) String

func (f *Flag[T]) String() string

func (*Flag[T]) TakesValue

func (f *Flag[T]) TakesValue() bool

func (*Flag[T]) TypeName

func (f *Flag[T]) TypeName() string

type HasOuterFlag

type HasOuterFlag interface {
	cli.Flag
	SetOuterFlag(cli.Flag)
	GetOuterFlag() cli.Flag
	GetInnerField() string
	GetDataAliases() []string
}

type InRequest

type InRequest interface {
	GetQueryPath() string
	GetHeaderPath() string
	GetBodyPath() string
	GetPathParam() string
	IsBodyRoot() bool
	IsFileInput() bool
	GetDataAliases() []string
}

InRequest exposes a flag's HTTP request location.

type InnerFieldSeeder added in v0.5.0

type InnerFieldSeeder interface {
	SeedInnerCollection(isArrayOfObjects bool)
}

InnerFieldSeeder initializes untyped nullable containers before assignment.

type InnerFlag

type InnerFlag[
	T []any | []map[string]any | []DateTimeValue | []DateValue | []TimeValue | []string |
		[]float64 | []int64 | []bool | any | map[string]any | DateTimeValue | DateValue | TimeValue |
		string | float64 | int64 | bool |
		*string | *float64 | *int64 | *bool | *DateTimeValue | *DateValue | *TimeValue,
] struct {
	Name        string
	DefaultText string
	Usage       string
	Aliases     []string
	Validator   func(T) error

	OuterFlag   cli.Flag
	InnerField  string
	DataAliases []string

	// OuterIsArrayOfObjects selects a list seed for untyped nullable schemas.
	OuterIsArrayOfObjects bool
}

InnerFlag sets nested values. For example, --foo.baz sets foo.baz.

func (*InnerFlag[T]) Get

func (f *InnerFlag[T]) Get() any

func (*InnerFlag[T]) GetDataAliases added in v0.4.0

func (f *InnerFlag[T]) GetDataAliases() []string

GetDataAliases returns the aliases recognized when parsing inner field keys from piped or flag YAML.

func (*InnerFlag[T]) GetDefaultText

func (f *InnerFlag[T]) GetDefaultText() string

func (*InnerFlag[T]) GetEnvVars

func (f *InnerFlag[T]) GetEnvVars() []string

func (*InnerFlag[T]) GetInnerField added in v0.4.0

func (f *InnerFlag[T]) GetInnerField() string

GetInnerField returns the canonical API field name.

func (*InnerFlag[T]) GetOuterFlag

func (f *InnerFlag[T]) GetOuterFlag() cli.Flag

func (*InnerFlag[T]) GetUsage

func (f *InnerFlag[T]) GetUsage() string

func (*InnerFlag[T]) GetValue

func (f *InnerFlag[T]) GetValue() string

func (*InnerFlag[T]) IsBoolFlag

func (f *InnerFlag[T]) IsBoolFlag() bool

func (*InnerFlag[T]) IsDefaultVisible

func (f *InnerFlag[T]) IsDefaultVisible() bool

func (*InnerFlag[T]) IsMultiValueFlag

func (f *InnerFlag[T]) IsMultiValueFlag() bool

func (*InnerFlag[T]) IsSet

func (f *InnerFlag[T]) IsSet() bool

func (*InnerFlag[T]) Names

func (f *InnerFlag[T]) Names() []string

func (*InnerFlag[T]) PostParse

func (f *InnerFlag[T]) PostParse() error

func (*InnerFlag[T]) PreParse

func (f *InnerFlag[T]) PreParse() error

func (*InnerFlag[T]) Set

func (f *InnerFlag[T]) Set(name string, rawVal string) error

func (*InnerFlag[T]) SetOuterFlag

func (f *InnerFlag[T]) SetOuterFlag(flag cli.Flag)

func (*InnerFlag[T]) String

func (f *InnerFlag[T]) String() string

func (*InnerFlag[T]) TakesValue

func (f *InnerFlag[T]) TakesValue() bool

func (*InnerFlag[T]) TypeName

func (f *InnerFlag[T]) TypeName() string

type RequestContents

type RequestContents struct {
	Queries map[string]any
	Headers map[string]any
	Body    any
}

RequestContents stores values by HTTP request location.

func ExtractRequestContents

func ExtractRequestContents(cmd *cli.Command) RequestContents

type RequiredFlagOrStdin

type RequiredFlagOrStdin interface {
	IsRequiredAsFlagOrStdin() bool
}

type SettableInnerField

type SettableInnerField interface {
	SetInnerField(string, any)
}

SettableInnerField accepts nested flag values.

type TimeValue

type TimeValue string

func (*TimeValue) Parse

func (t *TimeValue) Parse(s string) error

func (TimeValue) String

func (t TimeValue) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL