Documentation
¶
Index ¶
- Constants
- func GetIfSpecified(property jsonapi.NullableAttr[string]) (string, error)
- type JSONRenderer
- func (r *JSONRenderer) Message(format string, args ...interface{})
- func (r *JSONRenderer) MessageCommandFilter(format string, args ...interface{})
- func (r *JSONRenderer) MessageCommandHeader(format string, args ...interface{})
- func (r *JSONRenderer) RenderError(err error) error
- func (r *JSONRenderer) RenderFields(fields map[string]interface{}) error
- func (r *JSONRenderer) RenderJSON(data interface{}) error
- func (r *JSONRenderer) RenderProperties(properties []PropertyPair) error
- func (r *JSONRenderer) RenderTable(headers []string, rows [][]interface{}) error
- func (r *JSONRenderer) RenderTags(label string, tags []PropertyPair) error
- type Logger
- func (l *Logger) Debug(msg string, keysAndValues ...interface{})
- func (l *Logger) Error(msg string, keysAndValues ...interface{})
- func (l *Logger) GetLevel() slog.Level
- func (l *Logger) GetLogPath() string
- func (l *Logger) Info(msg string, keysAndValues ...interface{})
- func (l *Logger) IsEnabled(level slog.Level) bool
- func (l *Logger) Trace(msg string, keysAndValues ...interface{})
- func (l *Logger) Warn(msg string, keysAndValues ...interface{})
- type Output
- func (o *Output) Close() error
- func (o *Output) IsJSON() bool
- func (o *Output) Logger() *Logger
- func (o *Output) Message(format string, args ...interface{})
- func (o *Output) MessageCommandFilter(format string, args ...interface{})
- func (o *Output) MessageCommandHeader(format string, args ...interface{})
- func (o *Output) Mode() OutputMode
- func (o *Output) RenderError(err error) error
- func (o *Output) RenderFields(fields map[string]interface{}) error
- func (o *Output) RenderJSON(data interface{}) error
- func (o *Output) RenderProperties(properties []PropertyPair) error
- func (o *Output) RenderTable(headers []string, rows [][]interface{}) error
- func (o *Output) RenderTags(label string, tags []PropertyPair) error
- func (o *Output) Renderer() Renderer
- func (o *Output) Spinner() *Spinner
- type OutputMode
- type PropertyPair
- type Renderer
- type Spinner
- type TerminalRenderer
- func (r *TerminalRenderer) Message(format string, args ...interface{})
- func (r *TerminalRenderer) MessageCommandFilter(format string, args ...interface{})
- func (r *TerminalRenderer) MessageCommandHeader(format string, args ...interface{})
- func (r *TerminalRenderer) RenderError(err error) error
- func (r *TerminalRenderer) RenderFields(fields map[string]interface{}) error
- func (r *TerminalRenderer) RenderJSON(data interface{}) error
- func (r *TerminalRenderer) RenderProperties(properties []PropertyPair) error
- func (r *TerminalRenderer) RenderTable(headers []string, rows [][]interface{}) error
- func (r *TerminalRenderer) RenderTags(label string, tags []PropertyPair) error
Constants ¶
const LevelTrace = slog.Level(-8)
Custom log level for trace
Variables ¶
This section is empty.
Functions ¶
func GetIfSpecified ¶ added in v0.2.0
func GetIfSpecified(property jsonapi.NullableAttr[string]) (string, error)
GetIfSpecified retrieves the value from a NullableAttr if specified Returns empty string and nil error if not specified
Types ¶
type JSONRenderer ¶ added in v0.2.0
type JSONRenderer struct{}
JSONRenderer renders output as JSON
func NewJSONRenderer ¶ added in v0.2.0
func NewJSONRenderer() *JSONRenderer
func (*JSONRenderer) Message ¶ added in v0.2.0
func (r *JSONRenderer) Message(format string, args ...interface{})
func (*JSONRenderer) MessageCommandFilter ¶ added in v0.2.0
func (r *JSONRenderer) MessageCommandFilter(format string, args ...interface{})
func (*JSONRenderer) MessageCommandHeader ¶ added in v0.2.0
func (r *JSONRenderer) MessageCommandHeader(format string, args ...interface{})
func (*JSONRenderer) RenderError ¶ added in v0.2.0
func (r *JSONRenderer) RenderError(err error) error
func (*JSONRenderer) RenderFields ¶ added in v0.2.0
func (r *JSONRenderer) RenderFields(fields map[string]interface{}) error
func (*JSONRenderer) RenderJSON ¶ added in v0.2.0
func (r *JSONRenderer) RenderJSON(data interface{}) error
func (*JSONRenderer) RenderProperties ¶ added in v0.2.0
func (r *JSONRenderer) RenderProperties(properties []PropertyPair) error
func (*JSONRenderer) RenderTable ¶ added in v0.2.0
func (r *JSONRenderer) RenderTable(headers []string, rows [][]interface{}) error
func (*JSONRenderer) RenderTags ¶ added in v0.2.0
func (r *JSONRenderer) RenderTags(label string, tags []PropertyPair) error
type Logger ¶ added in v0.2.0
type Logger struct {
// contains filtered or unexported fields
}
Logger wraps slog for structured logging
func (*Logger) GetLogPath ¶ added in v0.2.0
GetLogPath returns the configured log path
func (*Logger) IsEnabled ¶ added in v0.2.0
IsEnabled returns true if the logger is enabled at the given level
type Output ¶
type Output struct {
// contains filtered or unexported fields
}
Output is the singleton that manages all output operations
func Get ¶ added in v0.2.0
func Get() *Output
Get returns the singleton Output instance Automatically initializes on first call using viper configuration
func (*Output) Close ¶
Close stops the spinner if running and closes any open output streams This should be called before the application exits to ensure clean shutdown
func (*Output) MessageCommandFilter ¶ added in v0.2.0
MessageCommandFilter outputs filter information
func (*Output) MessageCommandHeader ¶ added in v0.2.0
MessageCommandHeader outputs a command header
func (*Output) Mode ¶ added in v0.2.0
func (o *Output) Mode() OutputMode
Mode returns the current output mode
func (*Output) RenderError ¶ added in v0.2.0
RenderError renders an error
func (*Output) RenderFields ¶ added in v0.2.0
RenderFields renders key-value fields
func (*Output) RenderJSON ¶ added in v0.2.0
RenderJSON renders data as JSON
func (*Output) RenderProperties ¶ added in v0.2.0
func (o *Output) RenderProperties(properties []PropertyPair) error
RenderProperties renders ordered properties
func (*Output) RenderTable ¶ added in v0.2.0
RenderTable renders a table
func (*Output) RenderTags ¶ added in v0.2.0
func (o *Output) RenderTags(label string, tags []PropertyPair) error
RenderTags renders tags with a label
type OutputMode ¶ added in v0.2.0
type OutputMode int
OutputMode represents the output format
const ( ModeTerminal OutputMode = iota ModeJSON )
type PropertyPair ¶ added in v0.2.0
type PropertyPair struct {
Key string
Value interface{}
}
PropertyPair represents a key-value pair for ordered rendering
type Renderer ¶ added in v0.2.0
type Renderer interface {
// RenderError outputs an error
RenderError(err error) error
// Message outputs informational text (suppressed in JSON mode)
Message(format string, args ...interface{})
// MessageCommandHeader outputs command header information (suppressed in JSON mode)
MessageCommandHeader(format string, args ...interface{})
// MessageCommandFilter outputs filter information (suppressed in JSON mode)
MessageCommandFilter(format string, args ...interface{})
// RenderTable outputs a table
RenderTable(headers []string, rows [][]interface{}) error
// RenderFields outputs key-value pairs
RenderFields(fields map[string]interface{}) error
// RenderProperties outputs key-value pairs with formatting in order
RenderProperties(properties []PropertyPair) error
// RenderTags outputs tags with a header and formatted key-value pairs
RenderTags(label string, tags []PropertyPair) error
// RenderJSON outputs raw JSON
RenderJSON(data interface{}) error
}
Renderer defines the interface for rendering output
type Spinner ¶ added in v0.2.0
type Spinner struct {
// contains filtered or unexported fields
}
Spinner manages the loading spinner
func NewSpinner ¶ added in v0.2.0
func NewSpinner() *Spinner
NewSpinner creates a new spinner instance
func (*Spinner) FinalStop ¶ added in v0.2.0
func (s *Spinner) FinalStop()
FinalStop stops the spinner completely, ignoring depth tracking This should be called when you want to permanently stop the spinner
func (*Spinner) IsRunning ¶ added in v0.2.0
IsRunning returns true if the spinner is currently running
func (*Spinner) Start ¶ added in v0.2.0
func (s *Spinner) Start()
Start starts the spinner Uses depth tracking to handle nested stop/start calls
func (*Spinner) Stop ¶ added in v0.2.0
func (s *Spinner) Stop()
Stop stops the spinner Uses depth tracking to handle nested stop/start calls
func (*Spinner) UpdateMessage ¶ added in v0.2.0
UpdateMessage updates the spinner message
type TerminalRenderer ¶ added in v0.2.0
type TerminalRenderer struct{}
TerminalRenderer renders output for human consumption
func NewTerminalRenderer ¶ added in v0.2.0
func NewTerminalRenderer() *TerminalRenderer
func (*TerminalRenderer) Message ¶ added in v0.2.0
func (r *TerminalRenderer) Message(format string, args ...interface{})
func (*TerminalRenderer) MessageCommandFilter ¶ added in v0.2.0
func (r *TerminalRenderer) MessageCommandFilter(format string, args ...interface{})
func (*TerminalRenderer) MessageCommandHeader ¶ added in v0.2.0
func (r *TerminalRenderer) MessageCommandHeader(format string, args ...interface{})
func (*TerminalRenderer) RenderError ¶ added in v0.2.0
func (r *TerminalRenderer) RenderError(err error) error
func (*TerminalRenderer) RenderFields ¶ added in v0.2.0
func (r *TerminalRenderer) RenderFields(fields map[string]interface{}) error
func (*TerminalRenderer) RenderJSON ¶ added in v0.2.0
func (r *TerminalRenderer) RenderJSON(data interface{}) error
func (*TerminalRenderer) RenderProperties ¶ added in v0.2.0
func (r *TerminalRenderer) RenderProperties(properties []PropertyPair) error
func (*TerminalRenderer) RenderTable ¶ added in v0.2.0
func (r *TerminalRenderer) RenderTable(headers []string, rows [][]interface{}) error
func (*TerminalRenderer) RenderTags ¶ added in v0.2.0
func (r *TerminalRenderer) RenderTags(label string, tags []PropertyPair) error