go/pkg/errors/errors.go

129 lines
3.2 KiB
Go
Raw Normal View History

// Package errors provides structured error handling for Core applications.
//
// Deprecated: Use pkg/log instead. This package is maintained for backward
// compatibility and will be removed in a future version. All error handling
// functions are now available in pkg/log:
//
// // Instead of:
// import "github.com/host-uk/core/pkg/errors"
// err := errors.E("op", "msg", cause)
//
// // Use:
// import "github.com/host-uk/core/pkg/log"
// err := log.E("op", "msg", cause)
//
// Migration guide:
// - errors.Error -> log.Err
// - errors.E -> log.E
// - errors.Wrap -> log.Wrap
// - errors.WrapCode -> log.WrapCode
// - errors.Code -> log.NewCode
// - errors.New -> log.NewError
// - errors.Is -> log.Is
// - errors.As -> log.As
// - errors.Join -> log.Join
// - errors.Op -> log.Op
// - errors.ErrCode -> log.ErrCode
// - errors.Message -> log.Message
// - errors.Root -> log.Root
package errors
import (
"github.com/host-uk/core/pkg/log"
)
// Error represents a structured error with operational context.
//
// Deprecated: Use log.Err instead.
type Error = log.Err
// E creates a new Error with operation context.
//
// Deprecated: Use log.E instead.
func E(op, msg string, err error) error {
return log.E(op, msg, err)
}
// Wrap wraps an error with operation context.
// Returns nil if err is nil.
//
// Deprecated: Use log.Wrap instead.
func Wrap(err error, op, msg string) error {
return log.Wrap(err, op, msg)
}
// WrapCode wraps an error with operation context and an error code.
//
// Deprecated: Use log.WrapCode instead.
func WrapCode(err error, code, op, msg string) error {
return log.WrapCode(err, code, op, msg)
}
// Code creates an error with just a code and message.
//
// Deprecated: Use log.NewCode instead.
func Code(code, msg string) error {
return log.NewCode(code, msg)
}
// --- Standard library wrappers ---
// Is reports whether any error in err's tree matches target.
//
// Deprecated: Use log.Is instead.
func Is(err, target error) bool {
return log.Is(err, target)
}
// As finds the first error in err's tree that matches target.
//
// Deprecated: Use log.As instead.
func As(err error, target any) bool {
return log.As(err, target)
}
// New returns an error with the given text.
//
// Deprecated: Use log.NewError instead.
func New(text string) error {
return log.NewError(text)
}
// Join returns an error that wraps the given errors.
//
// Deprecated: Use log.Join instead.
func Join(errs ...error) error {
return log.Join(errs...)
}
// --- Helper functions ---
// Op extracts the operation from an error, or empty string if not an Error.
//
// Deprecated: Use log.Op instead.
func Op(err error) string {
return log.Op(err)
}
// ErrCode extracts the error code, or empty string if not set.
//
// Deprecated: Use log.ErrCode instead.
func ErrCode(err error) string {
return log.ErrCode(err)
}
// Message extracts the message from an error.
// For Error types, returns Msg; otherwise returns err.Error().
//
// Deprecated: Use log.Message instead.
func Message(err error) string {
return log.Message(err)
}
// Root returns the deepest error in the chain.
//
// Deprecated: Use log.Root instead.
func Root(err error) error {
return log.Root(err)
}