output

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2026 License: MIT Imports: 13 Imported by: 1

Documentation

Index

Constants

View Source
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 NewLogger added in v0.2.0

func NewLogger(logLevel string, logPath string) *Logger

NewLogger creates a new logger instance

func (*Logger) Debug added in v0.2.0

func (l *Logger) Debug(msg string, keysAndValues ...interface{})

Debug logs a debug message

func (*Logger) Error added in v0.2.0

func (l *Logger) Error(msg string, keysAndValues ...interface{})

Error logs an error message

func (*Logger) GetLevel added in v0.2.0

func (l *Logger) GetLevel() slog.Level

GetLevel returns the current log level

func (*Logger) GetLogPath added in v0.2.0

func (l *Logger) GetLogPath() string

GetLogPath returns the configured log path

func (*Logger) Info added in v0.2.0

func (l *Logger) Info(msg string, keysAndValues ...interface{})

Info logs an informational message

func (*Logger) IsEnabled added in v0.2.0

func (l *Logger) IsEnabled(level slog.Level) bool

IsEnabled returns true if the logger is enabled at the given level

func (*Logger) Trace added in v0.2.0

func (l *Logger) Trace(msg string, keysAndValues ...interface{})

Trace logs a trace message

func (*Logger) Warn added in v0.2.0

func (l *Logger) Warn(msg string, keysAndValues ...interface{})

Warn logs a warning message

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

func (o *Output) Close() error

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) IsJSON added in v0.2.0

func (o *Output) IsJSON() bool

IsJSON returns true if output mode is JSON

func (*Output) Logger added in v0.2.0

func (o *Output) Logger() *Logger

Logger returns the underlying logger

func (*Output) Message added in v0.2.0

func (o *Output) Message(format string, args ...interface{})

Message outputs a message

func (*Output) MessageCommandFilter added in v0.2.0

func (o *Output) MessageCommandFilter(format string, args ...interface{})

MessageCommandFilter outputs filter information

func (*Output) MessageCommandHeader added in v0.2.0

func (o *Output) MessageCommandHeader(format string, args ...interface{})

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

func (o *Output) RenderError(err error) error

RenderError renders an error

func (*Output) RenderFields added in v0.2.0

func (o *Output) RenderFields(fields map[string]interface{}) error

RenderFields renders key-value fields

func (*Output) RenderJSON added in v0.2.0

func (o *Output) RenderJSON(data interface{}) error

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

func (o *Output) RenderTable(headers []string, rows [][]interface{}) error

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

func (*Output) Renderer added in v0.2.0

func (o *Output) Renderer() Renderer

Renderer returns the underlying renderer

func (*Output) Spinner added in v0.2.0

func (o *Output) Spinner() *Spinner

Spinner returns the spinner (nil in JSON mode)

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

func (s *Spinner) IsRunning() bool

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

func (s *Spinner) UpdateMessage(msg string)

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

Jump to

Keyboard shortcuts

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