output

package
v0.3.9 Latest Latest
Warning

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

Go to latest
Published: May 2, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package output renders API responses in one of four formats: json (default), yaml, jsonl, table — optionally narrowed by --columns (dotted-path projection). Heavier transformations belong on the right of a `| jq` pipe — we deliberately don't ship a half-jq. Epoch-millis date fields (anything with format=date-time-millis in the spec) are humanised to ISO-8601 across every format so jq pipelines and humans see the same readable timestamp.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ColorizeJSON added in v0.3.8

func ColorizeJSON(b []byte) []byte

ColorizeJSON wraps a pre-formatted JSON byte slice in the same ANSI color scheme `--output json` uses (cyan keys, green strings, yellow numbers, magenta bool/null). Pass through unchanged input that isn't a tty target.

func HumanizeDates

func HumanizeDates(v interface{}) interface{}

HumanizeDates is the exported entry point for the same transformation Print applies — used by hand-written commands (e.g. `bron tx subscribe`) that build their own output pipelines but still want ISO dates by default.

func Print

func Print(v interface{}) error

Print renders v according to the global format/columns.

func PrintJSON

func PrintJSON(v interface{}) error

PrintJSON is kept as an alias for callers that want JSON regardless of globals.

func SanitizeForTerminal added in v0.3.6

func SanitizeForTerminal(s string) string

SanitizeForTerminal strips C0/C1 control bytes from a server-controlled string before it lands in a human-readable terminal context (table cells, stderr error fields). Without it, an attacker with workspace-write access could embed `\x1b]0;evil\x07` (title hijack) or `\r` (overwrite earlier columns) in account names / memos. JSON/YAML structured encoders escape control chars natively, so this is only needed on the raw-print path.

Keeps `\t` (column separator) and `\n` (line break in long strings).

func SetCellMax

func SetCellMax(n int)

SetCellMax sets the per-cell character cap for table output. 0 disables truncation entirely (useful on wide terminals where full IDs / addresses matter more than alignment). Negative or unset values keep the default.

func SetColumns

func SetColumns(c string)

SetColumns selects which fields to render in --output table. Comma-separated list (e.g. "transactionId,status,createdAt"). Empty disables filtering.

func SetDateKeys

func SetDateKeys(keys map[string]bool)

SetDateKeys configures the set of property names whose values are epoch-milliseconds — populated at CLI startup from the OpenAPI spec by collecting leaves with `format: "date-time-millis"`. Output formatters humanize values for these keys to ISO-8601 UTC. Empty set disables humanization entirely.

func SetFormat

func SetFormat(f string)

SetFormat updates the global output format. Empty string is ignored.

func UseColor added in v0.3.8

func UseColor(w io.Writer) bool

UseColor reports whether ANSI colors should be used when writing to w. Honors NO_COLOR (disable, any value) and FORCE_COLOR (enable, any value), otherwise enables colors only for ttys. Exposed so other packages can match the CLI's rendering rules without rewriting the detection logic.

Types

This section is empty.

Jump to

Keyboard shortcuts

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