Skip to content

Commit

Permalink
Rename WithNamespace to Nested
Browse files Browse the repository at this point in the history
  • Loading branch information
SladeThe committed Jan 8, 2023
1 parent a689f93 commit 0c8af7a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 30 deletions.
30 changes: 0 additions & 30 deletions errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ package yav
import (
"errors"
"fmt"

"go.uber.org/multierr"
)

const (
Expand Down Expand Up @@ -120,31 +118,3 @@ func (err Error) ValueAsString() string {

return ""
}

func WithNamespace(namespace string, err error) error {
if err == nil {
return nil
}

if validationErr, ok := err.(Error); ok {
if validationErr.ValueName == "" {
return err
}

validationErr.ValueName = namespace + "." + validationErr.ValueName
return validationErr
}

partialErrs := multierr.Errors(err) // TODO update in-place ?
if len(partialErrs) <= 1 {
return err
}

var combinedErr error

for _, partialErr := range partialErrs {
multierr.AppendInto(&combinedErr, WithNamespace(namespace, partialErr))
}

return combinedErr
}
32 changes: 32 additions & 0 deletions yav.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package yav

import (
"go.uber.org/multierr"
)

type ValidateFunc[T any] func(name string, value T) (stop bool, err error)

func Chain[T any](name string, value T, validateFuncs ...ValidateFunc[T]) error {
Expand All @@ -21,3 +25,31 @@ func Or[T any](name string, value T, validateFuncs ...ValidateFunc[T]) (stop boo

return
}

func Nested(name string, err error) error {
if err == nil {
return nil
}

if validationErr, ok := err.(Error); ok {
if validationErr.ValueName == "" {
return err
}

validationErr.ValueName = name + "." + validationErr.ValueName
return validationErr
}

partialErrs := multierr.Errors(err) // TODO update in-place ?
if len(partialErrs) <= 1 {
return err
}

var combinedErr error

for _, partialErr := range partialErrs {
multierr.AppendInto(&combinedErr, Nested(name, partialErr))
}

return combinedErr
}

0 comments on commit 0c8af7a

Please sign in to comment.