package utils

import (
	"errors"

	"github.com/tidbcloud/pkgv2/bizerr"
)

// ToBizError normalizes a Go error into a bizerr.BizError. If err is already a
// BizError it is returned as-is; nil returns nil.
func ToBizError(err error) bizerr.BizError {
	if err == nil {
		return nil
	}
	var bizErr bizerr.BizError
	if errors.As(err, &bizErr) {
		return bizErr
	}
	return bizerr.New(bizerr.ErrCodeUnknown, "%s", err.Error())
}
