From be87d47ebbeb0be056214a4010d42697e3a16065 Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 13 Apr 2025 07:07:43 +0800 Subject: [PATCH] chore: add gperr.Unwrap method --- internal/gperr/utils.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/gperr/utils.go b/internal/gperr/utils.go index 4ac1d64..fb98d6e 100644 --- a/internal/gperr/utils.go +++ b/internal/gperr/utils.go @@ -41,6 +41,18 @@ func Wrap(err error, message ...string) Error { return &baseError{fmt.Errorf("%s: %w", message[0], err)} } +func Unwrap(err error) Error { + //nolint:errorlint + switch err := err.(type) { + case interface{ Unwrap() []error }: + return &nestedError{Extras: err.Unwrap()} + case interface{ Unwrap() error }: + return &baseError{err.Unwrap()} + default: + return &baseError{err} + } +} + func wrap(err error) Error { if err == nil { return nil