mirror of
https://github.com/neilotoole/sq.git
synced 2024-12-18 21:52:28 +03:00
30 lines
675 B
Go
30 lines
675 B
Go
// Package jsonw implements output writers for JSON.
|
|
package jsonw
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/neilotoole/sq/cli/output"
|
|
"github.com/neilotoole/sq/cli/output/jsonw/internal"
|
|
jcolorenc "github.com/neilotoole/sq/cli/output/jsonw/internal/jcolorenc"
|
|
"github.com/neilotoole/sq/libsq/core/errz"
|
|
)
|
|
|
|
// writeJSON prints a JSON representation of v to out, using specs
|
|
// from pr.
|
|
func writeJSON(out io.Writer, pr *output.Printing, v any) error {
|
|
enc := jcolorenc.NewEncoder(out)
|
|
enc.SetColors(internal.NewColors(pr))
|
|
enc.SetEscapeHTML(false)
|
|
if !pr.Compact {
|
|
enc.SetIndent("", pr.Indent)
|
|
}
|
|
|
|
err := enc.Encode(v)
|
|
if err != nil {
|
|
return errz.Err(err)
|
|
}
|
|
|
|
return nil
|
|
}
|