Skip to content

Commit

Permalink
Do not use errgo nor pkg/errors for root errors
Browse files Browse the repository at this point in the history
Related to #582
  • Loading branch information
leo-scalingo committed Apr 6, 2023
1 parent 6cc4a9b commit d310f9d
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions errors/errctx.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,30 +25,41 @@ func (err ErrCtx) Unwrap() error {
return err.err
}

func New(ctx context.Context, message string) error {
return ErrCtx{ctx: ctx, err: errgo.New(message)}
// New wraps errors.New from the pkg/errors library
//
// These errors are usually created outside any function code at the top of
// files, so no context is needed.
func New(message string) error {
return errors.New(message)
}

func NewWithCtx(ctx context.Context, message string) error {
return ErrCtx{ctx: ctx, err: errors.New(message)}
}

func Newf(ctx context.Context, format string, args ...interface{}) error {
return ErrCtx{ctx: ctx, err: errgo.Newf(format, args...)}
return ErrCtx{ctx: ctx, err: errors.Errorf(format, args...)}
}

func Errorf(ctx context.Context, format string, args ...interface{}) error {
return ErrCtx{ctx: ctx, err: errors.Errorf(format, args...)}
}

// Notef is wrapping an error with the underneath errgo library
func Notef(ctx context.Context, err error, format string, args ...interface{}) error {
return ErrCtx{ctx: ctx, err: errgo.Notef(err, format, args...)}
}

// Wrap is wrapping an error with the underneath errgo library
func Wrap(ctx context.Context, err error, message string) error {
return ErrCtx{ctx: ctx, err: errors.Wrap(err, message)}
}

// Wrapf is wrapping an error with the underneath errgo library
func Wrapf(ctx context.Context, err error, format string, args ...interface{}) error {
return ErrCtx{ctx: ctx, err: errors.Wrapf(err, format, args...)}
}

func Errorf(ctx context.Context, format string, args ...interface{}) error {
return ErrCtx{ctx: ctx, err: errors.Errorf(format, args...)}
}

// RootCtxOrFallback unwrap all wrapped errors from err to get the deepest context
// from ErrCtx errors. If there is no wrapped ErrCtx RootCtxOrFallback returns ctx from parameter.
func RootCtxOrFallback(ctx context.Context, err error) context.Context {
Expand Down

0 comments on commit d310f9d

Please sign in to comment.