cli/azd/pkg/output/formatter.go (30 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package output
import (
"fmt"
"io"
)
type Format string
const (
EnvVarsFormat Format = "dotenv"
JsonFormat Format = "json"
TableFormat Format = "table"
NoneFormat Format = "none"
)
type Formatter interface {
Kind() Format
Format(obj interface{}, writer io.Writer, opts interface{}) error
}
func NewFormatter(format string) (Formatter, error) {
switch format {
case string(JsonFormat):
return &JsonFormatter{}, nil
case string(EnvVarsFormat):
return &EnvVarsFormatter{}, nil
case string(TableFormat):
return &TableFormatter{}, nil
case string(NoneFormat):
return &NoneFormatter{}, nil
default:
return nil, fmt.Errorf("unsupported format %v", format)
}
}