Files
soft_quay/core/catalog/canonical.go
T

33 lines
776 B
Go

package catalog
import (
"errors"
"fmt"
"softbox.local/core/internal/canonicaljson"
)
func parseRestrictedJSON(data []byte) (any, error) {
value, err := canonicaljson.Parse(data)
return value, catalogCanonicalError(err)
}
func canonicalJSON(value any) ([]byte, error) {
encoded, err := canonicaljson.Marshal(value)
return encoded, catalogCanonicalError(err)
}
func catalogCanonicalError(err error) error {
if err == nil {
return nil
}
switch {
case errors.Is(err, canonicaljson.ErrDuplicateField):
return fmt.Errorf("%w: canonical JSON", ErrDuplicateField)
case errors.Is(err, canonicaljson.ErrUnsupportedNumber):
return fmt.Errorf("%w: canonical JSON", ErrUnsupportedNumber)
default:
return fmt.Errorf("%w: canonical JSON", ErrInvalidDocument)
}
}