Here is an application that generates error variables from a YAML configuration file.
eg [flags]
-f, --file string a YAML configuration file (default "config-example.yaml")
-h, --help help for eg
-o, --output string Output file (default "./errors/errors.go")
-p, --package string the Go package name (default "errors")
eg -p errors -f errors-example.yaml -o out/errors.go
eg -f errors-example.yaml -o out/errors.md -t md
ErrInvalidInput:
code: 4000
status: 400
message: Invalid input provided
ErrInternal:
code: 5000
status: 500
message: Internal server error
// Code generated by go tool eg; DO NOT EDIT.
package errors
import (
"errors"
)
type Error struct {
Status int
Code int `json:"code"`
Message string `json:"message"`
}
var (
ErrInternal = &Error{
Code: 5000,
Status: 500,
Message: "Internal server error",
}
ErrInvalidInput = &Error{
Code: 4000,
Status: 400,
Message: "Invalid input provided",
}
)
// Is a wrapper of built-in errors.Is
func Is(err, target error) bool {
return errors.Is(err, target)
}
// As a wrapper of built-in errors.As
func As(err error, target any) bool {
return errors.As(err, target)
}
| Status | Code | Message |
|--------|------|------------------------|
| 400 | 4000 | Invalid input provided |
| 500 | 5000 | Internal server error |